Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
16 / 16
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
GetManagedUsersEndpoint
100.00% covered (success)
100.00%
16 / 16
100.00% covered (success)
100.00%
1 / 1
4
100.00% covered (success)
100.00%
1 / 1
 handle
100.00% covered (success)
100.00%
16 / 16
100.00% covered (success)
100.00%
1 / 1
4
1<?php
2
3namespace Olz\Apps\Anmelden\Endpoints;
4
5use Olz\Api\OlzTypedEndpoint;
6use Olz\Entity\Users\User;
7
8/**
9 * @phpstan-type ManagedUser array{
10 *   id: int,
11 *   firstName: non-empty-string,
12 *   lastName: non-empty-string,
13 * }
14 *
15 * @extends OlzTypedEndpoint<
16 *   ?array{},
17 *   array{
18 *     status: 'OK'|'ERROR',
19 *     managedUsers: ?array<ManagedUser>
20 *   },
21 * >
22 */
23class GetManagedUsersEndpoint extends OlzTypedEndpoint {
24    protected function handle(mixed $input): mixed {
25        $this->checkPermission('any');
26
27        $auth_user = $this->authUtils()->getCurrentUser();
28        $auth_user_id = $auth_user?->getId();
29        $user_repo = $this->entityManager()->getRepository(User::class);
30        $users = $user_repo->findBy(['parent_user' => $auth_user_id]);
31        $managed_users = [];
32        foreach ($users as $user) {
33            $managed_users[] = [
34                'id' => $user->getId() ?? 0,
35                'firstName' => $user->getFirstName() ?: '-',
36                'lastName' => $user->getLastName() ?: '-',
37            ];
38        }
39
40        return [
41            'status' => 'OK',
42            'managedUsers' => $managed_users,
43        ];
44    }
45}