Completed
Push — master ( 2b5a5a...a3a238 )
by Mauro
02:35
created

TaskController::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 5
Ratio 100 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 5
loc 5
rs 9.4285
cc 1
eloc 3
nc 1
nop 1
1
<?php
2
3
namespace App\Controller;
4
5
use App\Controller\BaseController;
6
use App\Service\TaskService;
7
8
/**
9
 * Tasks Controller.
10
 */
11 View Code Duplication
class TaskController extends BaseController
12
{
13
    /**
14
     * Constructor of the class.
15
     *
16
     * @param \Slim\Container $container
17
     */
18
    public function __construct(\Slim\Container $container)
19
    {
20
        $this->logger = $container->get('logger');
21
        $this->database = $container->get('db');
22
    }
23
24
    /**
25
     * Get all tasks.
26
     *
27
     * @param Request $request
28
     * @param Response $response
29
     * @param array $args
30
     * @return array
31
     */
32
    public function getTasks($request, $response, $args)
33
    {
34
        $this->setParams($request, $response, $args);
35
        $service = new TaskService($this->database);
36
        $result = $service->getTasks();
37
38
        return $this->jsonResponse('success', $result, 200);
39
    }
40
41
    /**
42
     * Get one task by id.
43
     *
44
     * @param Request $request
45
     * @param Response $response
46
     * @param array $args
47
     * @return array
48
     */
49
    public function getTask($request, $response, $args)
50
    {
51
        try {
52
            $this->setParams($request, $response, $args);
53
            $service = new TaskService($this->database);
54
            $result = $service->getTask($this->args['id']);
55
56
            return $this->jsonResponse('success', $result, 200);
57
        } catch (\Exception $ex) {
58
            return $this->jsonResponse('error', $ex->getMessage(), $ex->getCode());
59
        }
60
    }
61
62
    /**
63
     * Search tasks by name.
64
     *
65
     * @param Request $request
66
     * @param Response $response
67
     * @param array $args
68
     * @return array
69
     */
70
    public function searchTasks($request, $response, $args)
71
    {
72
        try {
73
            $this->setParams($request, $response, $args);
74
            $service = new TaskService($this->database);
75
            $result = $service->searchTasks($this->args['query']);
76
77
            return $this->jsonResponse('success', $result, 200);
78
        } catch (\Exception $ex) {
79
            return $this->jsonResponse('error', $ex->getMessage(), $ex->getCode());
80
        }
81
    }
82
83
    /**
84
     * Create a task.
85
     *
86
     * @param Request $request
87
     * @param Response $response
88
     * @param array $args
89
     * @return array
90
     */
91
    public function createTask($request, $response, $args)
92
    {
93
        try {
94
            $this->setParams($request, $response, $args);
95
            $service = new TaskService($this->database);
96
            $input = $this->request->getParsedBody();
97
            $result = $service->createTask($input);
98
99
            return $this->jsonResponse('success', $result, 200);
100
        } catch (\Exception $ex) {
101
            return $this->jsonResponse('error', $ex->getMessage(), $ex->getCode());
102
        }
103
    }
104
105
    /**
106
     * Update a task.
107
     *
108
     * @param Request $request
109
     * @param Response $response
110
     * @param array $args
111
     * @return array
112
     */
113
    public function updateTask($request, $response, $args)
114
    {
115
        $this->setParams($request, $response, $args);
116
        $input = $this->request->getParsedBody();
117
        $service = new TaskService($this->database);
118
        try {
119
            $result = $service->updateTask($input, $this->args['id']);
120
            return $this->jsonResponse('success', $result, 200);
121
        } catch (\Exception $ex) {
122
            return $this->jsonResponse('error', $ex->getMessage(), $ex->getCode());
123
        }
124
    }
125
126
    /**
127
     * Delete a task.
128
     *
129
     * @param Request $request
130
     * @param Response $response
131
     * @param array $args
132
     * @return array
133
     */
134
    public function deleteTask($request, $response, $args)
135
    {
136
        try {
137
            $this->setParams($request, $response, $args);
138
            $service = new TaskService($this->database);
139
            $result = $service->deleteTask($this->args['id']);
140
141
            return $this->jsonResponse('success', $result, 200);
142
        } catch (\Exception $ex) {
143
            return $this->jsonResponse('error', $ex->getMessage(), $ex->getCode());
144
        }
145
    }
146
}
147