Passed
Push — master ( c13b73...f2713c )
by Arthur
05:06
created

AccountController   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 75
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 17
dl 0
loc 75
rs 10
c 0
b 0
f 0
wmc 6

6 Methods

Rating   Name   Duplication   Size   Complexity  
A store() 0 5 1
A __construct() 0 3 1
A update() 0 9 1
A destroy() 0 9 1
A show() 0 7 1
A index() 0 3 1
1
<?php
2
3
namespace Modules\Account\Http\Controllers;
4
5
use Foundation\Abstracts\Controller\Controller;
6
use Foundation\Responses\ApiResponse;
7
use Illuminate\Http\Request;
8
use Modules\Account\Contracts\AccountServiceContract;
9
use Modules\Account\Transformers\AccountTransformer;
10
11
class AccountController extends Controller
12
{
13
    /**
14
     * @var AccountServiceContract
15
     */
16
    protected $service;
17
18
    /**
19
     * AccountController constructor.
20
     *
21
     * @param $service
22
     */
23
    public function __construct(AccountServiceContract $service)
24
    {
25
        $this->service = $service;
26
    }
27
28
    /**
29
     * Display a listing of the resource.
30
     */
31
    public function index()
32
    {
33
        return AccountTransformer::collection($this->service->getByUserId(get_authenticated_user_id()));
34
    }
35
36
    /**
37
     * Store a newly created Account in storage.
38
     */
39
    public function store(Request $request)
40
    {
41
        $Account = $this->service->create($this->injectUserId($request));
42
43
        return AccountTransformer::resource($Account);
44
    }
45
46
    /**
47
     * Update a Account.
48
     *
49
     * @param Request $request
50
     */
51
    public function update(Request $request, $id)
52
    {
53
        $Account = $this->service->find($id);
54
55
        $this->isOwner($Account);
56
57
        $Account = $this->service->update($id, $request->toArray());
58
59
        return AccountTransformer::resource($Account);
60
    }
61
62
    /**
63
     * Show the specified resource.
64
     */
65
    public function show($id)
66
    {
67
        $Account = $this->service->find($id);
68
69
        $this->isOwner($Account);
70
71
        return AccountTransformer::resource($Account);
72
    }
73
74
    /**
75
     * Remove the specified resource from storage.
76
     */
77
    public function destroy($id)
78
    {
79
        $Account = $this->service->find($id);
80
81
        $this->isOwner($Account);
82
83
        $this->service->delete($Account);
84
85
        return ApiResponse::deleted();
86
    }
87
}
88