From 37177e2891d3379c2f9d0e525743a15e7568a7f9 Mon Sep 17 00:00:00 2001 From: Mirzaev Date: Tue, 15 Nov 2022 10:22:24 +1000 Subject: [PATCH] =?UTF-8?q?=D0=9A=D0=BE=D1=81=D0=BC=D0=B5=D1=82=D0=B8?= =?UTF-8?q?=D1=87=D0=B5=D1=81=D0=BA=D0=B8=D0=B5=20=D0=B8=D0=B7=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mirzaev/vk/arangodb/system/journal.php | 28 ++++++++++---------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/mirzaev/vk/arangodb/system/journal.php b/mirzaev/vk/arangodb/system/journal.php index 9b443d9..fbda1ac 100644 --- a/mirzaev/vk/arangodb/system/journal.php +++ b/mirzaev/vk/arangodb/system/journal.php @@ -50,10 +50,10 @@ class journal * Инициализация * * @param _connection $session Сессия соединения с базой данных - * @param string $document Идентификатор документа - * @param bool $create Создавать коллекции при их отсутствии + * @param string $document Идентификатор документа для которого нужен журнал + * @param bool $create Создавать коллекции при их отсутствии? * - * @return static|null Объект с инстанцией журнала + * @return static|null Инстанция журнала */ public static function init(_connection $session, string $document, bool $create = true): ?static { @@ -66,22 +66,16 @@ class journal } if (empty($journal = static::search($session, $document))) { - // Не найден журнал (подразумевается, что его не существует) + // Не найден журнал (подразумевается, что его не существует или истёк срок использования) - if (empty($journal = document::write($session, static::COLLECTION_JOURNAL, [ + // Создание журнала + if (empty(document::write($session, static::COLLECTION_JOURNAL, [ 'events' => [], 'expires' => strtotime('first day of next month 00:00') - ]))) { - // Не удалось создать документ + ])) || empty($journal = static::search($session, $document))) return null; - return null; - } - - if (empty(document::write($session, longpoll::COLLECTION_ACCESSED, ['_from' => $document, '_to' => $journal]))) { - // Не удалось создать ребро: {$document} -> ЖУРНАЛ - - return null; - } + // Cоздание ребра: {$document} -> ЖУРНАЛ + if (empty(document::write($session, longpoll::COLLECTION_ACCESSED, ['_from' => $document, '_to' => $journal->getId()]))) return null; } // Инициализация инстанции журнала и возврат @@ -94,7 +88,7 @@ class journal * Находит актуальный документ журнала * * @param _connection $session Сессия соединения с базой данных - * @param string $document Идентификатор документа + * @param string $document Идентификатор документа для которого нужен журнал * * @return _document|null Инстанция (static::COLLECTION_JOURNAL) или его идентификатор */ @@ -117,7 +111,7 @@ class journal FOR a IN $collection LET b = ( FOR vertex, edge IN INBOUND a $edge - FILTER vertex._id == $document + FILTER vertex._id == "$document" LIMIT 1 RETURN vertex )