BillPayController::destroy()   A
last analyzed

Complexity

Conditions 4
Paths 4

Size

Total Lines 21
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 4
eloc 10
nc 4
nop 2
dl 0
loc 21
rs 9.9332
c 0
b 0
f 0
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 BillPayController 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
		$bill_pays = $user->bill_pays()->with('category')->get();
32
33
		return response()->json(['status' => 'success', 'data' => $bill_pays]);
34
    }
35
36
    public function store(Request $request)
37
    {
38
        $rules = [
39
            'category_id' => 'required',
40
            'date_launch' => 'required|date',
41
            'name' => 'required|min:3|max:255',
42
            'value' => 'required|numeric'
43
        ];
44
45
        $validator = \Validator::make($request->all(), $rules);
46
47
        if ($validator->fails()) {
48
           return response()->json(['status' => 'error', 'errors' => $validator->errors()], 422);
49
        }
50
51
        $user = $this->model->where('id', $request->user()->id)->first();
52
53
        if (!$user) {
54
            return response()->json(['status' => 'error', 'message' => 'Opss. Usuário não foi encontrado, favor verifique se esta logado.']);
55
        }
56
        
57
        $user->bill_pays()->create($request->all());
58
59
        return response()->json(['status' => 'success', 'message' => 'Conta a pagar criada com sucesso']);
60
    }
61
62
    public function show(Request $request, $id)
63
    {
64
        if (!$id) {
65
           return response()->json(['status' => 'error', 'message' => 'Conta a pagar não informada']);
66
        }
67
68
        $user = $this->model->where('id', $request->user()->id)->first();
69
70
        if (!$user) {
71
            return response()->json(['status' => 'error', 'message' => 'Opss. Usuário não foi encontrado, favor verifique se esta logado.']);
72
        }
73
        
74
        $bill_pay = $user->bill_pays()->find($id);
75
76
        if (!$bill_pay) {
77
            return response()->json(['status' => 'error', 'message' => 'Opss. Conta a pagar não encontrada pra este usuário.']);
78
        }
79
80
        return response()->json(['status' => 'success', 'data' => $bill_pay]);
81
    }
82
83
    public function update(Request $request, $id)
84
    {
85
        $rules = [
86
            'category_id' => 'required',
87
            'date_launch' => 'required|date',
88
            'name' => 'required|min:3|max:255',
89
            'value' => 'required|numeric',
90
            'status' => 'required'
91
        ];
92
93
        $validator = \Validator::make($request->all(), $rules);
94
95
        if ($validator->fails()) {
96
           return response()->json(['status' => 'error', 'errors' => $validator->errors()], 422);
97
        }
98
99
        if (!$id) {
100
           return response()->json(['status' => 'error', 'message' => 'Conta a pagar não informada']);
101
        }
102
103
        $user = $this->model->where('id', $request->user()->id)->first();
104
105
        if (!$user) {
106
            return response()->json(['status' => 'error', 'message' => 'Opss. Usuário não foi encontrado, favor verifique se esta logado.']);
107
        }
108
        
109
        $bill_pay = $user->bill_pays()->find($id);
110
111
        if (!$bill_pay) {
112
            return response()->json(['status' => 'error', 'message' => 'Opss. Conta a pagar não encontrada pra este usuário.']);
113
        }
114
115
        $bill_pay->update($request->all());
116
117
        return response()->json(['status' => 'success', 'message' => 'Conta a pagar atualizada com sucesso.']);
118
    }
119
120
    public function toggle(Request $request, $id)
121
    {
122
        $rules = [
123
            'status' => 'required'
124
        ];
125
126
        $validator = \Validator::make($request->all(), $rules);
127
128
        if ($validator->fails()) {
129
           return response()->json(['status' => 'error', 'errors' => $validator->errors()], 422);
130
        }
131
132
        if (!$id) {
133
           return response()->json(['status' => 'error', 'message' => 'Conta a pagar não informada']);
134
        }
135
136
        $user = $this->model->where('id', $request->user()->id)->first();
137
138
        if (!$user) {
139
            return response()->json(['status' => 'error', 'message' => 'Opss. Usuário não foi encontrado, favor verifique se esta logado.']);
140
        }
141
        
142
        $bill_pay = $user->bill_pays()->find($id);
143
144
        if (!$bill_pay) {
145
            return response()->json(['status' => 'error', 'message' => 'Opss. Conta a pagar não encontrada pra este usuário.']);
146
        }
147
148
        $bill_pay->update($request->all());
149
150
        return response()->json(['status' => 'success', 'message' => 'Conta a pagar atualizada com sucesso.']);
151
    }
152
153
    public function destroy(Request $request, $id)
154
    {
155
        if (!$id) {
156
           return response()->json(['status' => 'error', 'message' => 'Conta a pagar não informada']);
157
        }
158
159
        $user = $this->model->where('id', $request->user()->id)->first();
160
161
        if (!$user) {
162
            return response()->json(['status' => 'error', 'message' => 'Opss. Usuário não foi encontrado, favor verifique se esta logado.']);
163
        }
164
        
165
        $bill_pay = $user->bill_pays()->find($id);
166
167
        if (!$bill_pay) {
168
            return response()->json(['status' => 'error', 'message' => 'Opss. Conta a pagar não encontrada pra este usuário.']);
169
        }
170
171
        $bill_pay->delete();
172
173
        return response()->json(['status' => 'success', 'message' => 'Conta a pagar deletada com sucesso.']);
174
    }
175
}