ApiController::setStatusCode()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 6
rs 9.4285
cc 1
eloc 3
nc 1
nop 1
1
<?php
2
3
namespace App\Http\Controllers;
4
5
6
use Illuminate\Http\Response as IlluminateResponse;
7
use Illuminate\Support\Facades\Response;
8
9
/**
10
 * Class ApiController
11
 * @package App\Http\Controllers
12
 */
13
class ApiController extends Controller
14
{
15
16
    /**
17
     * @var int
18
     */
19
    protected $statusCode = 200;
20
21
    /**
22
     * @return mixed
23
     */
24
    public function getStatusCode()
25
    {
26
        return $this->statusCode;
27
    }
28
29
    /**
30
     * @param mixed $statusCode
31
     * return $this
32
     */
33
    public function setStatusCode($statusCode)
34
    {
35
        $this->statusCode = $statusCode;
36
37
        return $this;
38
    }
39
40
    /**
41
     * @param string $message
42
     * @return mixed
43
     */
44
    public function respondNotFound($message = 'Not Found!')
45
    {
46
        return $this->setStatusCode(IlluminateResponse::HTTP_NOT_FOUND)->respondWithError($message);
47
    }
48
49
50
    /**
51
     * @param string $message
52
     * @return mixed
53
     */
54
    public function respondInternalError($message = 'Internal Error')
55
    {
56
        return $this->setStatusCode(IlluminateResponse::HTTP_INTERNAL_SERVER_ERROR)->respondWithError($message);
57
    }
58
59
    /**
60
     * @param $data
61
     * @param array $headers
62
     * @return mixed
63
     */
64
    public function respond($data, $headers = [])
65
    {
66
        return Response::json($data, $this->getStatusCode(), $headers);
67
    }
68
69
    /**
70
     * @param $message
71
     * @return mixed
72
     */
73
    public function respondWithError($message)
74
    {
75
76
        return $this->respond([
77
78
            'error'=> [
79
                'message' => $message,
80
                'status_code' => $this->getStatusCode()
81
            ]
82
        ]);
83
84
    }
85
86
    /**
87
     * @return mixed
88
     */
89
    protected function respondCreated($message)
90
    {
91
        return $this->setStatusCode(IlluminateResponse::HTTP_CREATED)
92
            ->respond([
93
                'message' => $message
94
            ]);
95
    }
96
97
}