diff --git a/app/config/collections.php b/app/config/collections.php index 6f284000ac..c4a4a3066a 100644 --- a/app/config/collections.php +++ b/app/config/collections.php @@ -2860,14 +2860,14 @@ $collections = [ ], [ '$id' => 'accessedAt', - 'type' => Database::VAR_INTEGER, + 'type' => Database::VAR_DATETIME, 'format' => '', 'size' => 0, 'signed' => false, - 'required' => true, + 'required' => false, 'default' => null, 'array' => false, - 'filters' => [], + 'filters' => ['datetime'], ], [ '$id' => 'signature', diff --git a/app/controllers/shared/api.php b/app/controllers/shared/api.php index 74be07a886..6a06a56491 100644 --- a/app/controllers/shared/api.php +++ b/app/controllers/shared/api.php @@ -358,6 +358,7 @@ App::shutdown() if ($useCache) { $resource = null; $data = $response->getPayload(); + if (!empty($data['payload'])) { $pattern = $route->getLabel('cache.resource', null); if (!empty($pattern)) { @@ -365,7 +366,6 @@ App::shutdown() } $key = md5($request->getURI() . implode('*', $request->getParams())); - $data = json_encode([ 'content-type' => $response->getContentType(), 'payload' => base64_encode($data['payload']), @@ -373,15 +373,18 @@ App::shutdown() $signature = md5($data); $cacheLog = $dbForProject->getDocument('cache', $key); + $now = date('d-m-Y H:i:s', time()); if ($cacheLog->isEmpty()) { Authorization::skip(fn () => $dbForProject->createDocument('cache', new Document([ '$id' => $key, 'resource' => $resource, - 'accessedAt' => \time(), + 'accessedAt' => $now, 'signature' => $signature, ]))); - } elseif (date('Y/m/d', \time()) > date('Y/m/d', $cacheLog->getAttribute('accessedAt'))) { - $cacheLog->setAttribute('accessedAt', \time()); + } elseif (date('Y/m/d', \time()) > date('Y/m/d', strtotime($cacheLog->getAttribute('accessedAt')))) { + var_dump('update'); + var_dump($now); + $cacheLog->setAttribute('accessedAt', $now); Authorization::skip(fn () => $dbForProject->updateDocument('cache', $cacheLog->getId(), $cacheLog)); } diff --git a/app/workers/deletes.php b/app/workers/deletes.php index da52c1d2f8..995104e074 100644 --- a/app/workers/deletes.php +++ b/app/workers/deletes.php @@ -112,7 +112,7 @@ class DeletesV1 extends Worker $this->deleteCacheByResource($project->getId()); break; case DELETE_TYPE_CACHE_BY_TIMESTAMP: - $this->deleteCacheByTimestamp(); + $this->deleteCacheByDate(); break; default: Console::error('No delete operation for type: ' . $type); @@ -134,10 +134,10 @@ class DeletesV1 extends Worker ]); } - protected function deleteCacheByTimestamp(): void + protected function deleteCacheByDate(): void { $this->deleteCacheFiles([ - Query::lessThan('accessedAt', $this->args['timestamp']), + Query::lessThan('accessedAt', $this->args['datetime']), ]); } diff --git a/composer.lock b/composer.lock index ebecc59afb..37c654761e 100644 --- a/composer.lock +++ b/composer.lock @@ -5391,5 +5391,5 @@ "platform-overrides": { "php": "8.0" }, - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.2.0" }