Passed
Push — dependabot/github_actions/code... ( 154cc6...3e3012 )
by
unknown
26:36 queued 15:59
created

UserSkillsController   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 13
c 1
b 0
f 0
dl 0
loc 22
rs 10
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A __invoke() 0 20 3
1
<?php
2
3
/* For licensing terms, see /license.txt */
4
5
declare(strict_types=1);
6
7
namespace Chamilo\CoreBundle\Controller\Api;
8
9
use Chamilo\CoreBundle\Entity\SkillRelUser;
10
use Chamilo\CoreBundle\Repository\AssetRepository;
11
use Doctrine\ORM\EntityManagerInterface;
12
use Symfony\Component\HttpFoundation\JsonResponse;
13
use Symfony\Component\HttpFoundation\Request;
14
15
class UserSkillsController
16
{
17
    public function __invoke(Request $request, EntityManagerInterface $entityManager, AssetRepository $assetRepository): JsonResponse
18
    {
19
        $userId = $request->attributes->get('id');
20
        $skillRelUserRepository = $entityManager->getRepository(SkillRelUser::class);
21
22
        $skillRelUsers = $skillRelUserRepository->findBy(['user' => $userId]);
23
24
        $skillsData = [];
25
        foreach ($skillRelUsers as $skillRelUser) {
26
            $skillAsset = $skillRelUser->getSkill()->getAsset();
27
28
            $skillData = [
29
                'id' => $skillRelUser->getSkill()->getId(),
30
                'name' => $skillRelUser->getSkill()->getTitle(),
31
                'image' => $skillAsset ? $assetRepository->getAssetUrl($skillAsset) : '',
32
            ];
33
            $skillsData[] = $skillData;
34
        }
35
36
        return new JsonResponse($skillsData);
37
    }
38
}
39