userId = $UserId ?? ''; $this->metricsReader = $metricsReader; $this->dataReader = $dataReader; $this->httpClient = $httpClientService->newClient(); } /** * * @NoAdminRequired * @NoCSRFRequired * * @return JSONResponse */ public function metrics(): JSONResponse { $metrics = $this->metricsReader->metrics($this->userId); return new JSONResponse([ 'subscriptions' => $metrics, ]); } /** * @NoAdminRequired * @NoCSRFRequired * * @param string $url * @return JsonResponse */ public function podcastData(string $url = ''): JsonResponse { if ($url === '') { return new JSONResponse([ 'message' => "Missing query parameter 'url'.", 'data' => null, ], statusCode: Http::STATUS_BAD_REQUEST); } return new JsonResponse([ 'data' => $this->dataReader->getCachedOrFetchPodcastData($url, $this->userId), ]); } }