diff --git a/classes/events.php b/classes/events.php index 5dfb0cf..5b93a9c 100644 --- a/classes/events.php +++ b/classes/events.php @@ -59,13 +59,29 @@ class events { if ($callbacks->valid()) { foreach ($callbacks as $callback) { - self::send($data, $callback); + self::handlerCallback($data, $callback); } } $callbacks->close(); } + /** + * Processes each callback. + * + * @param array $data + * @param object $callback + */ + private static function handlerCallback($data, $callback) { + if ($callback->enable) { + $events = unserialize(gzuncompress(base64_decode($callback->events))); + + if (boolval($events[$data["eventname"]])) { + self::send($data, $callback); + } + } + } + /** * Sending data to the node. * @@ -73,11 +89,9 @@ class events { * @param object $callback */ private static function send($data, $callback) { - if ($callback->enable) { - $curl = new curl(); - $package = self::packup($data); - $curl::request($callback->url, $package); - } + $curl = new curl(); + $package = self::packup($data); + $curl::request($callback->url, $package); } /**