UserDeleteByIdAction   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 48
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
dl 0
loc 48
rs 10
c 0
b 0
f 0
wmc 2
lcom 0
cbo 1

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A __invoke() 0 6 1
1
<?php
2
3
namespace Finder\Http\Actions;
4
5
use Population\Manipule\Managers\UserManager;
6
use Illuminate\Contracts\Routing\ResponseFactory;
7
use Illuminate\Http\JsonResponse;
8
use Illuminate\Http\Response;
9
10
/**
11
 * Class UserDeleteByIdAction.
12
 *
13
 * @package Finder\Http\Actions
14
 */
15
class UserDeleteByIdAction
16
{
17
    /**
18
     * @var ResponseFactory
19
     */
20
    private $responseFactory;
21
22
    /**
23
     * @var UserManager
24
     */
25
    private $userManager;
26
27
    /**
28
     * UserDeleteByIdAction constructor.
29
     *
30
     * @param ResponseFactory $responseFactory
31
     * @param UserManager     $userManager
32
     */
33
    public function __construct(ResponseFactory $responseFactory, UserManager $userManager)
34
    {
35
        $this->responseFactory = $responseFactory;
36
        $this->userManager = $userManager;
37
    }
38
39
    /**
40
     * @apiVersion        1.0.0
41
     * @api               {delete} /v1/users/:user_id Delete
42
     * @apiName           Delete
43
     * @apiGroup          Users
44
     * @apiHeader         {String} Accept application/json
45
     * @apiParam          {Integer{1...N}='me'} :user_id Unique resource ID.
46
     * @apiSuccessExample {json} Success-Response:
47
     * HTTP/1.1 204 No Content
48
     */
49
50
    /**
51
     * Delete a user.
52
     *
53
     * @param  mixed $id
54
     * @return JsonResponse
55
     */
56
    public function __invoke($id): JsonResponse
57
    {
58
        $this->userManager->deleteById((int) $id);
59
60
        return $this->responseFactory->json(null, Response::HTTP_NO_CONTENT);
61
    }
62
}
63