ApiController   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 85
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 7
c 2
b 0
f 1
lcom 1
cbo 1
dl 0
loc 85
rs 10

7 Methods

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