Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
10 / 10
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
UserRoleMembershipEndpointTrait
100.00% covered (success)
100.00%
10 / 10
100.00% covered (success)
100.00%
2 / 2
4
100.00% covered (success)
100.00%
1 / 1
 getRoleEntityById
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
2
 getUserEntityById
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3namespace Olz\Roles\Endpoints;
4
5use Olz\Entity\Roles\Role;
6use Olz\Entity\Users\User;
7use Olz\Utils\WithUtilsTrait;
8use PhpTypeScriptApi\HttpError;
9
10/**
11 * @phpstan-type OlzRoleMembershipIds array{
12 *   roleId: int<1, max>,
13 *   userId: int<1, max>,
14 * }
15 */
16trait UserRoleMembershipEndpointTrait {
17    use WithUtilsTrait;
18
19    protected function getRoleEntityById(int $id): Role {
20        $repo = $this->entityManager()->getRepository(Role::class);
21        $entity = $repo->findOneBy(['id' => $id]);
22        if (!$entity) {
23            throw new HttpError(404, "Nicht gefunden.");
24        }
25        return $entity;
26    }
27
28    protected function getUserEntityById(int $id): User {
29        $repo = $this->entityManager()->getRepository(User::class);
30        $entity = $repo->findOneBy(['id' => $id]);
31        if (!$entity) {
32            throw new HttpError(404, "Nicht gefunden.");
33        }
34        return $entity;
35    }
36}