Get user relationships
dyb-tech.com/LaLiga-BackEnd/pipeline/head This commit looks good
Details
dyb-tech.com/LaLiga-BackEnd/pipeline/head This commit looks good
Details
This commit is contained in:
parent
44a0214187
commit
eb5af013f0
|
|
@ -4,7 +4,7 @@ namespace DMD\LaLigaApi\Controller;
|
|||
|
||||
use DMD\LaLigaApi\Repository\UserRepository;
|
||||
use DMD\LaLigaApi\Service\User\Handlers\delete\HandleDeleteUser;
|
||||
use DMD\LaLigaApi\Service\User\Handlers\getRelationships\HandleGetUserRelationships;
|
||||
use DMD\LaLigaApi\Service\User\Handlers\getRelationships\HandleGetRelationships;
|
||||
use DMD\LaLigaApi\Service\User\Handlers\update\HandleUpdateUser;
|
||||
use DMD\LaLigaApi\Service\User\Handlers\register\HandleRegistration;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
|
|
@ -35,6 +35,12 @@ class UserController extends AbstractController
|
|||
return $handleUpdateUser($request);
|
||||
}
|
||||
|
||||
#[Route('/api/user/relationships', name: 'app_get_user_relationships', methods: ['GET'])]
|
||||
public function getUserRelationships(Request $request, HandleGetRelationships $handleGetRelationships): JsonResponse
|
||||
{
|
||||
return $handleGetRelationships($request);
|
||||
}
|
||||
|
||||
#[Route('/api/user/password', name: 'app_user_change_password', methods: ['PUT'])]
|
||||
public function changePassword(
|
||||
Request $request,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,51 @@
|
|||
<?php
|
||||
|
||||
namespace DMD\LaLigaApi\Service\User\Handlers\getRelationships;
|
||||
|
||||
use DMD\LaLigaApi\Dto\UserDto;
|
||||
use DMD\LaLigaApi\Entity\User;
|
||||
use DMD\LaLigaApi\Repository\UserRepository;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpKernel\Exception\HttpException;
|
||||
|
||||
class HandleGetRelationships
|
||||
{
|
||||
public function __construct(
|
||||
public Security $security
|
||||
){}
|
||||
|
||||
public function __invoke(): JsonResponse
|
||||
{
|
||||
$user = $this->security->getUser();
|
||||
if (!$user instanceof User)
|
||||
{
|
||||
throw new HttpException(Response::HTTP_NOT_FOUND, 'User not found');
|
||||
}
|
||||
$customRoles = $user->getRoles();
|
||||
if (empty($customRoles))
|
||||
{
|
||||
return new JsonResponse([
|
||||
'success' => true,
|
||||
'relationships' => []
|
||||
], Response::HTTP_OK);
|
||||
}
|
||||
$relationshipArray = [];
|
||||
foreach ($customRoles as $customRoleEntity)
|
||||
{
|
||||
$relationshipArray[] = [
|
||||
'role' => $customRoleEntity->getName(),
|
||||
'entityId' => $customRoleEntity->getEntityId()
|
||||
];
|
||||
}
|
||||
return new JsonResponse(
|
||||
data: [
|
||||
'success' => true,
|
||||
'relationships' => $relationshipArray
|
||||
],
|
||||
status: Response::HTTP_OK
|
||||
);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue