Code Duplication    Length = 20-20 lines in 3 locations

index.php 3 locations

@@ 100-119 (lines=20) @@
97
/*
98
 * define routes
99
 */
100
$app->group($apiPrefix . '/devices', function () {
101
    $this->post('', function (Request $request, Response $response) {
102
        return $response->withJson(callWithNonEmptyParams([$this->devices, 'create'], $request->getParsedBody(), $request->getParams()));
103
    });
104
    $this->get('', function (Request $request, Response $response) {
105
        return $response->withJson(callWithNonEmptyParams([$this->devices, 'all'], $request->getParams()));
106
    });
107
    $this->get(id_PATTERN, function (Request $request, Response $response, $id) {
108
        return $response->withJson(callWithNonEmptyParams([$this->devices, 'get'], $id, $request->getParams()));
109
    });
110
    $this->put(id_PATTERN, function (Request $request, Response $response, $id) {
111
        return $response->withJson(callWithNonEmptyParams([$this->devices, 'update'], $id, $request->getParams()));
112
    });
113
    $this->delete(id_PATTERN, function (Request $request, Response $response, $id) {
114
        return $response->withJson(callWithNonEmptyParams([$this->devices, 'delete'], $id, $request->getParams()));
115
    });
116
    $this->get(id_PATTERN . '/logs', function (Request $request, Response $response, $id) {
117
        return $response->withJson(callWithNonEmptyParams([$this->logs, 'listByDevice'], $id, $request->getParams()));
118
    });
119
});
120
$app->group($apiPrefix . '/logs', function () {
121
    $this->post('', function (Request $request, Response $response) {
122
        return $response->withJson(callWithNonEmptyParams([$this->logs, 'create'], $request->getParsedBody(), $request->getParams()));
@@ 120-139 (lines=20) @@
117
        return $response->withJson(callWithNonEmptyParams([$this->logs, 'listByDevice'], $id, $request->getParams()));
118
    });
119
});
120
$app->group($apiPrefix . '/logs', function () {
121
    $this->post('', function (Request $request, Response $response) {
122
        return $response->withJson(callWithNonEmptyParams([$this->logs, 'create'], $request->getParsedBody(), $request->getParams()));
123
    });
124
    $this->get('', function (Request $request, Response $response) {
125
        return $response->withJson(callWithNonEmptyParams([$this->logs, 'all'], $request->getParams()));
126
    });
127
    $this->get(id_PATTERN, function (Request $request, Response $response, $id) {
128
        return $response->withJson(callWithNonEmptyParams([$this->logs, 'get'], $id, $request->getParams()));
129
    });
130
    $this->put(id_PATTERN, function (Request $request, Response $response, $id) {
131
        return $response->withJson(callWithNonEmptyParams([$this->logs, 'update'], $id, $request->getParams()));
132
    });
133
    $this->delete(id_PATTERN, function (Request $request, Response $response, $id) {
134
        return $response->withJson(callWithNonEmptyParams([$this->logs, 'delete'], $id, $request->getParams()));
135
    });
136
    $this->get(id_PATTERN . '/entries', function (Request $request, Response $response, $id) {
137
        return $response->withJson(callWithNonEmptyParams([$this->entries, 'listByLog'], $id, $request->getParams()));
138
    });
139
});
140
$app->group($apiPrefix . '/entries', function () {
141
    $this->post('', function (Request $request, Response $response) {
142
        return $response->withJson(callWithNonEmptyParams([$this->entries, 'create'], $request->getParsedBody(), $request->getParams()));
@@ 154-173 (lines=20) @@
151
        return $response->withJson(callWithNonEmptyParams([$this->entries, 'delete'], $id, $request->getParams()));
152
    });
153
});
154
$app->group($apiPrefix . '/users', function () {
155
    $this->post('', function (Request $request, Response $response) {
156
        return $response->withJson(callWithNonEmptyParams([$this->users, 'create'], $request->getParsedBody(), $request->getParams()));
157
    });
158
    $this->get('', function (Request $request, Response $response) {
159
        return $response->withJson(callWithNonEmptyParams([$this->users, 'all'], $request->getParams()));
160
    });
161
    $this->get(id_PATTERN, function (Request $request, Response $response, $id) {
162
        return $response->withJson(callWithNonEmptyParams([$this->users, 'get'], $id, $request->getParams()));
163
    });
164
    $this->get('/{screen_name:\w{' . User::SCREEN_NAME_MINIMUM_LENGTH . ',}}', function (Request $request, Response $response, $screen_name) {
165
        return $response->withJson(callWithNonEmptyParams([$this->users, 'lookupByScreenName'], $screen_name, $request->getParams()));
166
    });
167
    $this->put(id_PATTERN, function (Request $request, Response $response, $id) {
168
        return $response->withJson(callWithNonEmptyParams([$this->users, 'update'], $id, $request->getParams()));
169
    });
170
    $this->delete(id_PATTERN, function (Request $request, Response $response, $id) {
171
        return $response->withJson(callWithNonEmptyParams([$this->users, 'delete'], $id, $request->getParams()));
172
    });
173
});
174
175
/* finish lazy CORS */
176
$app->map(['GET', 'POST', 'PUT', 'DELETE'], $apiPrefix . '/{routes:.+}', function ($req, $res) {