ApiController   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 71
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

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

7 Methods

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