* SPDX-License-Identifier: AGPL-3.0-or-later */ namespace KTXM\ChronoManager\Controllers; use KTXC\Http\Response\JsonResponse; use KTXF\Controller\ControllerAbstract; use KTXF\Resource\Selector\SourceSelector; use KTXF\Routing\Attributes\AuthenticatedRoute; use KTXM\ChronoManager\Manager; class ProviderController extends ControllerAbstract { public function __construct( private Manager $chronoManager, ) {} /** * Retrieve list of available providers * * @return JsonResponse */ #[AuthenticatedRoute('/provider/list', name: 'chronomanager.provider.list', methods: ['GET'])] public function list(): JsonResponse { $providers = $this->chronoManager->providerList(); return new JsonResponse($providers, JsonResponse::HTTP_OK); } /** * Confirm which providers are available * * @param SourceSelector $sources provider sources * * @return JsonResponse */ #[AuthenticatedRoute('/provider/extant', name: 'chronomanager.provider.extant', methods: ['POST'])] public function extant(SourceSelector $sources): JsonResponse { $responseData = $this->chronoManager->providerExtant($sources); return new JsonResponse($responseData, JsonResponse::HTTP_OK); } }