ApiController::respondWithError()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

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