From 6d83f77fcf26f5bd752dec98ffa20fab4f542365 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Wed, 15 Jul 2020 23:23:08 +0300 Subject: [PATCH] webhook comments --- application/Espo/Core/Webhook/Manager.php | 18 ++++++++++++++++++ application/Espo/Core/Webhook/Queue.php | 3 +++ application/Espo/Core/Webhook/Sender.php | 3 +++ 3 files changed, 24 insertions(+) diff --git a/application/Espo/Core/Webhook/Manager.php b/application/Espo/Core/Webhook/Manager.php index 4ed85b513b..3f7881d290 100644 --- a/application/Espo/Core/Webhook/Manager.php +++ b/application/Espo/Core/Webhook/Manager.php @@ -37,6 +37,9 @@ use Espo\Core\{ ORM\Entity, }; +/** + * Processes events. Holds an information about existing events. + */ class Manager { private $cacheFile = 'data/cache/application/webhooks.php'; @@ -108,6 +111,9 @@ class Manager return $data; } + /** + * Add an event. To cache the information that at least one webhook for this event exists. + */ public function addEvent(string $event) { $this->data[$event] = true; @@ -117,6 +123,9 @@ class Manager } } + /** + * Remove an event. If no webhooks with this event left, then it will be removed from the cache. + */ public function removeEvent(string $event) { $notExists = !$this->entityManager->getRepository('Webhook')->select(['id'])->where([ @@ -142,6 +151,9 @@ class Manager $GLOBALS['log']->debug("Webhook: {$event} on record {$entity->id}."); } + /** + * Process 'create' event. + */ public function processCreate(Entity $entity) { $event = $entity->getEntityType() . '.create'; @@ -158,6 +170,9 @@ class Manager $this->logDebugEvent($event, $entity); } + /** + * Process 'delete' event. + */ public function processDelete(Entity $entity) { $event = $entity->getEntityType() . '.delete'; @@ -176,6 +191,9 @@ class Manager $this->logDebugEvent($event, $entity); } + /** + * Process 'update' event. + */ public function processUpdate(Entity $entity) { $event = $entity->getEntityType() . '.update'; diff --git a/application/Espo/Core/Webhook/Queue.php b/application/Espo/Core/Webhook/Queue.php index a635dde840..625431e8ff 100644 --- a/application/Espo/Core/Webhook/Queue.php +++ b/application/Espo/Core/Webhook/Queue.php @@ -42,6 +42,9 @@ use Espo\Core\{ ORM\EntityManager, }; +/** + * Groups ocurred events into portions and sends them. A portion contains multiple events of the same webhook. + */ class Queue { const EVENT_PORTION_SIZE = 20; diff --git a/application/Espo/Core/Webhook/Sender.php b/application/Espo/Core/Webhook/Sender.php index 2100693df6..ede50a39d6 100644 --- a/application/Espo/Core/Webhook/Sender.php +++ b/application/Espo/Core/Webhook/Sender.php @@ -35,6 +35,9 @@ use Espo\Core\{ Utils\Config, }; +/** + * Sends a poption. + */ class Sender { const CONNECT_TIMEOUT = 5;