<?php
/**
* Created by Josué Yannick Cruz Sandoval <josue.yannick@gmail.com>
<<<<<<< HEAD
* Date created 06/10/2020 03:23 p. m.
=======
* Date created 07/10/2020 05:41 p. m.
>>>>>>> sprint6.1
*/
namespace App\Controller\Api\Agents;
use App\Controller\Api\Webhooks\MetamapWebhook;
use App\Controller\ApiBaseController;
use App\ExternalProvider\MiddlewarePlatformService;
use Doctrine\Persistence\ManagerRegistry;
use FOS\RestBundle\Controller\Annotations as Rest;
use FOS\RestBundle\Controller\Annotations\Post;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
class DefaultController extends ApiBaseController
{
#[Route(path: '/')]
function index(Request $request): JsonResponse|Response
{
if (str_contains($request->getHost(), 'adminmerchant')) {
return $this->redirectToRoute('agents_home');
} else {
return $this->apiResponse();
}
}
#[Route(path: '/bind/webhook/metamap', methods: ["POST"])]
function bindWebhookMetamap(Request $request, MetamapWebhook $metamapWebhook, ParameterBagInterface $params, ManagerRegistry $mr): JsonResponse|Response
{
return $metamapWebhook->handle($request, $params, $mr);
}
/**
*
* @return JsonResponse|Response
* @throws \Exception
*/
#[Rest\Get('/supported-app-versions', name: 'api_agents_supported_app_versions')]
function getSupportedAppVersions(MiddlewarePlatformService $platformService): JsonResponse|Response
{
return $this->apiResponse([
'versions' => $platformService->getSupportedAppVersions(),
'date' => (new \DateTime('now', new \DateTimeZone('UTC')))
->format(\DateTime::ISO8601)
]);
}
/**
* @return JsonResponse|Response
*/
#[Rest\Post('/public/testDataWithFiles')]
function testFileSend(Request $request): JsonResponse|Response
{
return $this->apiResponse([
'data' => $request->request->all(),
'files' => $request->files->all(),
]);
}
}