ApiController::respond()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

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