From dd294decd3e9925fe4cf2eb0ec7d96aaee270f0e Mon Sep 17 00:00:00 2001 From: Awilum Date: Sat, 7 Aug 2021 21:38:45 +0300 Subject: [PATCH] feat(endpoints): add new endpoint /api/utils/cache/clear --- src/flextype/Endpoints/utils.php | 75 ++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/flextype/Endpoints/utils.php diff --git a/src/flextype/Endpoints/utils.php b/src/flextype/Endpoints/utils.php new file mode 100644 index 00000000..85e812d1 --- /dev/null +++ b/src/flextype/Endpoints/utils.php @@ -0,0 +1,75 @@ +post('/api/utils/cache/clear', function (Request $request, Response $response) { + + // Get Query Params + $data = $request->getParsedBody(); + + // Check is images api enabled + if (! registry()->get('flextype.settings.api.utils.enabled')) { + return getApiResponseWithError($response, 400); + } + + // Check is token param exists + if (! isset($data['token'])) { + return getApiResponseWithError($response, 400); + } + + // Check is token exists + if (! tokens()->has($data['token'])) { + return getApiResponseWithError($response, 401); + } + + // Fetch token + $tokenData = tokens()->fetch($data['token']); + + // Verify access token + if (password_verify($tokenData['hashed_access_token'], $data['access_token'])) { + return getApiResponseWithError($response, 401); + } + + // Check token state and limit_calls + if ($tokenData['state'] === 'disabled' || + ($tokenData['limit_calls'] !== 0 && $tokenData['calls'] >= $tokenData['limit_calls'])) { + return getApiResponseWithError($response, 400); + } + + // Update token calls + tokens()->update($data['token'], ['calls' => $data['calls'] + 1]); + + // Clear cache + filesystem()->directory(PATH['tmp'])->delete(); + + // Return success response + return ; +});