CategoryController   A
last analyzed

Complexity

Total Complexity 19

Size/Duplication

Total Lines 125
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 52
dl 0
loc 125
rs 10
c 0
b 0
f 0
wmc 19

6 Methods

Rating   Name   Duplication   Size   Complexity  
A store() 0 21 3
A __construct() 0 3 1
A destroy() 0 21 4
A index() 0 11 2
A show() 0 19 4
A update() 0 31 5
1
<?php
2
3
namespace App\Http\Controllers\Api\V1;
4
5
use App\Http\Controllers\Controller;
6
use Illuminate\Http\Request;
7
use App\User;
8
9
class CategoryController extends Controller
10
{
11
	private $model;
12
13
	/**
14
     * Create a new controller instance.
15
     *
16
     * @return void
17
     */
18
    public function __construct(User $model)
19
    {
20
        $this->model = $model;
21
    }
22
23
    public function index(Request $request)
24
    {
25
        $user = $this->model->where('id', $request->user()->id)->first();
26
27
		if (!$user) {
28
			return response()->json(['status' => 'error', 'message' => 'Opss. Usuário não foi encontrado, favor verifique se esta logado.']);
29
		}
30
31
		$categories = $user->categories()->get();
32
33
		return response()->json(['status' => 'success', 'data' => $categories]);
34
    }
35
36
    public function store(Request $request)
37
    {
38
        $rules = [
39
            'name' => 'required|min:3|max:255'
40
        ];
41
42
        $validator = \Validator::make($request->all(), $rules);
43
44
        if ($validator->fails()) {
45
           return response()->json(['status' => 'error', 'errors' => $validator->errors()], 422);
46
        }
47
48
        $user = $this->model->where('id', $request->user()->id)->first();
49
50
        if (!$user) {
51
            return response()->json(['status' => 'error', 'message' => 'Opss. Usuário não foi encontrado, favor verifique se esta logado.']);
52
        }
53
        
54
        $user->categories()->create($request->all());
55
56
        return response()->json(['status' => 'success', 'message' => 'Categoria criada com sucesso']);
57
    }
58
59
    public function show(Request $request, $id)
60
    {
61
        if (!$id) {
62
           return response()->json(['status' => 'error', 'message' => 'Categoria não informada']);
63
        }
64
65
        $user = $this->model->where('id', $request->user()->id)->first();
66
67
        if (!$user) {
68
            return response()->json(['status' => 'error', 'message' => 'Opss. Usuário não foi encontrado, favor verifique se esta logado.']);
69
        }
70
        
71
        $category = $user->categories()->find($id);
72
73
        if (!$category) {
74
            return response()->json(['status' => 'error', 'message' => 'Opss. Categoria não encontrada pra este usuário.']);
75
        }
76
77
        return response()->json(['status' => 'success', 'data' => $category]);
78
    }
79
80
    public function update(Request $request, $id)
81
    {
82
        $rules = [
83
            'name' => 'required|min:3|max:255'
84
        ];
85
86
        $validator = \Validator::make($request->all(), $rules);
87
88
        if ($validator->fails()) {
89
           return response()->json(['status' => 'error', 'errors' => $validator->errors()], 422);
90
        }
91
        
92
        if (!$id) {
93
           return response()->json(['status' => 'error', 'message' => 'Categoria não informada']);
94
        }
95
96
        $user = $this->model->where('id', $request->user()->id)->first();
97
98
        if (!$user) {
99
            return response()->json(['status' => 'error', 'message' => 'Opss. Usuário não foi encontrado, favor verifique se esta logado.']);
100
        }
101
        
102
        $category = $user->categories()->find($id);
103
104
        if (!$category) {
105
            return response()->json(['status' => 'error', 'message' => 'Opss. Categoria não encontrada pra este usuário.']);
106
        }
107
108
        $category->update($request->all());
109
110
        return response()->json(['status' => 'success', 'message' => 'Categoria atualizada com sucesso.']);
111
    }
112
113
    public function destroy(Request $request, $id)
114
    {
115
        if (!$id) {
116
           return response()->json(['status' => 'error', 'message' => 'Categoria não informada']);
117
        }
118
119
        $user = $this->model->where('id', $request->user()->id)->first();
120
121
        if (!$user) {
122
            return response()->json(['status' => 'error', 'message' => 'Opss. Usuário não foi encontrado, favor verifique se esta logado.']);
123
        }
124
        
125
        $category = $user->categories()->find($id);
126
127
        if (!$category) {
128
            return response()->json(['status' => 'error', 'message' => 'Opss. Categoria não encontrada pra este usuário.']);
129
        }
130
131
        $category->delete();
132
133
        return response()->json(['status' => 'success', 'message' => 'Categoria deletada com sucesso.']);
134
    }
135
}