Passed
Push — feature/optimize ( e2ac6c...cf938e )
by Fu
02:50
created

ResponseHandle   A

Complexity

Total Complexity 20

Size/Duplication

Total Lines 255
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 28
dl 0
loc 255
rs 10
c 0
b 0
f 0
wmc 20

17 Methods

Rating   Name   Duplication   Size   Complexity  
A handle() 0 24 4
A handleNotImplemented() 0 3 1
A handlePaymentRequired() 0 6 1
A handleForbidden() 0 3 1
A handleLocked() 0 3 1
A handleInternalServerError() 0 6 1
A handleNotFound() 0 3 1
A handleCreated() 0 3 1
A handleUnprocessableEntity() 0 6 1
A handleSeeOther() 0 3 1
A handleOk() 0 3 1
A handleResetContent() 0 3 1
A handleBadRequest() 0 3 1
A handleTooManyRequests() 0 6 1
A handleNoContent() 0 3 1
A handleAccepted() 0 3 1
A handleUnauthorized() 0 3 1
1
<?php
2
3
4
namespace Modules\Core\Traits\Supports;
5
6
7
use Illuminate\Support\Arr;
8
use Modules\Core\Enums\StatusCodeEnum;
9
use Modules\Core\Supports\Response;
10
11
trait ResponseHandle
12
{
13
    /**
14
     * Response Handle
15
     *
16
     * @param int $statusCode
17
     * @param $data
18
     * @param bool $overwrite
19
     * @param string|null $message
20
     * @return \Modules\Core\Supports\Response
21
     */
22
    public static function handle(
23
        int $statusCode,
24
        $data = null,
25
        bool $overwrite = false,
26
        string $message = null
27
    ): Response {
28
        if (($overwrite && is_array($data))) {
29
            $_data = $data;
30
        } else {
31
            $_data = self::parseData($data);
32
        }
33
34
        $_meta = self::parseMeta($data);
35
36
        $_meta = Arr::prepend($_meta, $statusCode, 'status_code');
37
        $_meta = Arr::prepend($_meta, $message ?? StatusCodeEnum::__($statusCode), 'message');
38
39
        Arr::set($response, 'meta', $_meta);
40
41
        if (!is_null($_data)) {
42
            Arr::set($response, 'data', $_data);
43
        }
44
45
        return self::call($response);
46
    }
47
48
    /**
49
     * Response Ok
50
     *
51
     * @param $data
52
     * @param bool $overwrite
53
     * @param string|null $message
54
     * @return \Modules\Core\Supports\Response
55
     */
56
    public static function handleOk($data = null, bool $overwrite = false, string $message = null): Response
57
    {
58
        return self::handle(StatusCodeEnum::HTTP_OK, $data, $overwrite, $message);
59
    }
60
61
    /**
62
     * Response Created
63
     *
64
     * @param $data
65
     * @param bool $overwrite
66
     * @param string|null $message
67
     * @return \Modules\Core\Supports\Response
68
     */
69
    public static function handleCreated($data = null, bool $overwrite = false, string $message = null): Response
70
    {
71
        return self::handle(StatusCodeEnum::HTTP_CREATED, $data, $overwrite, $message);
72
    }
73
74
    /**
75
     * Response Accepted
76
     *
77
     * @param $data
78
     * @param bool $overwrite
79
     * @param string|null $message
80
     * @return \Modules\Core\Supports\Response
81
     */
82
    public static function handleAccepted($data = null, bool $overwrite = false, string $message = null): Response
83
    {
84
        return self::handle(StatusCodeEnum::HTTP_ACCEPTED, $data, $overwrite, $message);
85
    }
86
87
    /**
88
     * Response NoContent
89
     *
90
     * @param $data
91
     * @param bool $overwrite
92
     * @param string|null $message
93
     * @return \Modules\Core\Supports\Response
94
     */
95
    public static function handleNoContent($data = null, bool $overwrite = false, string $message = null): Response
96
    {
97
        return self::handle(StatusCodeEnum::HTTP_NO_CONTENT, $data, $overwrite, $message);
98
    }
99
100
    /**
101
     * Response ResetContent
102
     *
103
     * @param $data
104
     * @param bool $overwrite
105
     * @param string|null $message
106
     * @return \Modules\Core\Supports\Response
107
     */
108
    public static function handleResetContent($data = null, bool $overwrite = false, string $message = null): Response
109
    {
110
        return self::handle(StatusCodeEnum::HTTP_RESET_CONTENT, $data, $overwrite, $message);
111
    }
112
113
    /**
114
     * Response SeeOther
115
     *
116
     * @param $data
117
     * @param bool $overwrite
118
     * @param string|null $message
119
     * @return \Modules\Core\Supports\Response
120
     */
121
    public static function handleSeeOther($data = null, bool $overwrite = false, string $message = null): Response
122
    {
123
        return self::handle(StatusCodeEnum::HTTP_SEE_OTHER, $data, $overwrite, $message);
124
    }
125
126
    /**
127
     * Response BadRequest
128
     *
129
     * @param $data
130
     * @param bool $overwrite
131
     * @param string|null $message
132
     * @return \Modules\Core\Supports\Response
133
     */
134
    public static function handleBadRequest($data = null, bool $overwrite = false, string $message = null): Response
135
    {
136
        return self::handle(StatusCodeEnum::HTTP_BAD_REQUEST, $data, $overwrite, $message);
137
    }
138
139
    /**
140
     * Response Unauthorized
141
     *
142
     * @param $data
143
     * @param bool $overwrite
144
     * @param string|null $message
145
     * @return \Modules\Core\Supports\Response
146
     */
147
    public static function handleUnauthorized($data = null, bool $overwrite = false, string $message = null): Response
148
    {
149
        return self::handle(StatusCodeEnum::HTTP_UNAUTHORIZED, $data, $overwrite, $message);
150
    }
151
152
    /**
153
     * Response PaymentRequired
154
     *
155
     * @param $data
156
     * @param bool $overwrite
157
     * @param string|null $message
158
     * @return \Modules\Core\Supports\Response
159
     */
160
    public static function handlePaymentRequired(
161
        $data = null,
162
        bool $overwrite = false,
163
        string $message = null
164
    ): Response {
165
        return self::handle(StatusCodeEnum::HTTP_PAYMENT_REQUIRED, $data, $overwrite, $message);
166
    }
167
168
    /**
169
     * Response Forbidden
170
     *
171
     * @param $data
172
     * @param bool $overwrite
173
     * @param string|null $message
174
     * @return \Modules\Core\Supports\Response
175
     */
176
    public static function handleForbidden($data = null, bool $overwrite = false, string $message = null): Response
177
    {
178
        return self::handle(StatusCodeEnum::HTTP_PAYMENT_REQUIRED, $data, $overwrite, $message);
179
    }
180
181
    /**
182
     * Response NotFound
183
     *
184
     * @param $data
185
     * @param bool $overwrite
186
     * @param string|null $message
187
     * @return \Modules\Core\Supports\Response
188
     */
189
    public static function handleNotFound($data = null, bool $overwrite = false, string $message = null): Response
190
    {
191
        return self::handle(StatusCodeEnum::HTTP_NOT_FOUND, $data, $overwrite, $message);
192
    }
193
194
    /**
195
     * Response UnprocessableEntity
196
     *
197
     * @param $data
198
     * @param bool $overwrite
199
     * @param string|null $message
200
     * @return \Modules\Core\Supports\Response
201
     */
202
    public static function handleUnprocessableEntity(
203
        $data = null,
204
        bool $overwrite = false,
205
        string $message = null
206
    ): Response {
207
        return self::handle(StatusCodeEnum::HTTP_UNPROCESSABLE_ENTITY, $data, $overwrite, $message);
208
    }
209
210
    /**
211
     * Response Locked
212
     *
213
     * @param $data
214
     * @param bool $overwrite
215
     * @param string|null $message
216
     * @return \Modules\Core\Supports\Response
217
     */
218
    public static function handleLocked($data = null, bool $overwrite = false, string $message = null): Response
219
    {
220
        return self::handle(StatusCodeEnum::HTTP_LOCKED, $data, $overwrite, $message);
221
    }
222
223
    /**
224
     * Response TooManyRequests
225
     *
226
     * @param $data
227
     * @param bool $overwrite
228
     * @param string|null $message
229
     * @return \Modules\Core\Supports\Response
230
     */
231
    public static function handleTooManyRequests(
232
        $data = null,
233
        bool $overwrite = false,
234
        string $message = null
235
    ): Response {
236
        return self::handle(StatusCodeEnum::HTTP_TOO_MANY_REQUESTS, $data, $overwrite, $message);
237
    }
238
239
    /**
240
     * Response InternalServerError
241
     *
242
     * @param $data
243
     * @param bool $overwrite
244
     * @param string|null $message
245
     * @return \Modules\Core\Supports\Response
246
     */
247
    public static function handleInternalServerError(
248
        $data = null,
249
        bool $overwrite = false,
250
        string $message = null
251
    ): Response {
252
        return self::handle(StatusCodeEnum::HTTP_INTERNAL_SERVER_ERROR, $data, $overwrite, $message);
253
    }
254
255
    /**
256
     * Response NotImplemented
257
     *
258
     * @param $data
259
     * @param bool $overwrite
260
     * @param string|null $message
261
     * @return \Modules\Core\Supports\Response
262
     */
263
    public static function handleNotImplemented($data = null, bool $overwrite = false, string $message = null): Response
264
    {
265
        return self::handle(StatusCodeEnum::HTTP_NOT_IMPLEMENTED, $data, $overwrite, $message);
266
    }
267
}