Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
15 / 15
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
UsersController
100.00% covered (success)
100.00%
15 / 15
100.00% covered (success)
100.00%
2 / 2
3
100.00% covered (success)
100.00%
1 / 1
 index
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
1 / 1
1
 user
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3declare(strict_types=1);
4
5namespace Engelsystem\Controllers\Api;
6
7use Engelsystem\Controllers\Api\Resources\UserDetailResource;
8use Engelsystem\Controllers\Api\Resources\UserResource;
9use Engelsystem\Http\Request;
10use Engelsystem\Http\Response;
11use Engelsystem\Models\BaseModel;
12use Engelsystem\Models\User\User;
13
14class UsersController extends ApiController
15{
16    use UsesAuth;
17
18    public function index(): Response
19    {
20        $models = User::query()
21            ->orderBy('name')
22            ->get();
23
24        $models = $models->map(function (BaseModel $model) {
25            return UserResource::toIdentifierArray($model);
26        });
27
28        $data = ['data' => $models];
29        return $this->response
30            ->withContent(json_encode($data));
31    }
32
33    public function user(Request $request): Response
34    {
35        $id = $request->getAttribute('user_id');
36        $user = $this->getUser($id);
37
38        $userData = $user->id == $this->auth->user()->id ? new UserDetailResource($user) : new UserResource($user);
39        $data = ['data' => $userData->toArray()];
40        return $this->response
41            ->withContent(json_encode($data));
42    }
43}