From 517fed230d99eb7dd263f8052b75720556253547 Mon Sep 17 00:00:00 2001 From: Awilum Date: Mon, 10 Feb 2020 16:35:00 +0300 Subject: [PATCH] refactor(core): rename `delivery api` to `entries delivery api` --- flextype/routes/api/delivery/entries.php | 67 ++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 flextype/routes/api/delivery/entries.php diff --git a/flextype/routes/api/delivery/entries.php b/flextype/routes/api/delivery/entries.php new file mode 100644 index 00000000..36f4ac20 --- /dev/null +++ b/flextype/routes/api/delivery/entries.php @@ -0,0 +1,67 @@ +getQueryParams()['token'] . '/token.yaml'); +} + +/** + * Fetch entry(entries) + * + * endpoint: /api/delivery/entries + */ +$app->get('/api/delivery/entries', function (Request $request, Response $response) use ($flextype) { + + // Get Query Params + $query = $request->getQueryParams(); + + // Set variables + $id = $query['id']; + $args = isset($query['args']) ? $query['args'] : null; + + // Validate delivery token + if (validate_delivery_entries_token($request, $flextype)) { + + $delivery_entries_token_file_path = PATH['tokens'] . '/delivery/entries/' . $request->getQueryParams()['token'] . '/token.yaml'; + + // Set delivery token file + if ($delivery_entries_token_file_data = $flextype['parser']->decode(Filesystem::read($delivery_entries_token_file_path), 'yaml')) { + if ($delivery_entries_token_file_data['state'] == 'disabled' || + ($delivery_entries_token_file_data['limit_calls'] != 0 && $delivery_entries_token_file_data['calls'] >= $delivery_entries_token_file_data['limit_calls'])) { + return $response->withJson(["detail" => "Incorrect authentication credentials."], 401); + } else { + // Fetch entry + $data = $flextype['entries']->fetch($id, $args); + + // Set response code + $response_code = (count($data) > 0) ? 200 : 404 ; + + // Update calls counter + Filesystem::write($delivery_entries_token_file_path, $flextype['parser']->encode(array_replace_recursive($delivery_entries_token_file_data, ['calls' => $delivery_entries_token_file_data['calls'] + 1]), 'yaml')); + + // Return response + return $response->withJson($data, $response_code); + } + } else { + return $response->withJson(["detail" => "Incorrect authentication credentials."], 401); + } + } else { + return $response->withJson(["detail" => "Incorrect authentication credentials."], 401); + } +});