method add documentation in bbn\Appui\Observer

Adds a new observer and returns its id or the id of an existing one.

function(array $cfg, $check_result = true) { if ( $this->id_user && (null !== $cfg['request']) && $this->check() ){ X::log($cfg, 'observers'); $t = new bbn\Util\Timer(); $t->start(); if ( is_string($cfg['request']) ){ $params = self::sanitizeParams($cfg['params'] ?? []); $request = $cfg['request']; } else if ( is_array($cfg['request']) ){ $params = null; $request = $cfg['request']; } else{ return null; } $res = $this->_exec($request, $params); $duration = (int)ceil($t->stop() * 1000); if ( is_array($request) ){ $request = json_encode($request); } $id_alias = $this->_get_id($request, $params); X::log([$id_alias, $this->db->last(), $request, $params], 'observers'); //die(var_dump($id_alias, $this->db->last(), $request, $params)); // If it is a public observer it will be the id_alias and the main observer if ( !$id_alias && !empty($cfg['public']) && $this->db->insertIgnore('bbn_observers', [ 'request' => $request, 'params' => $params ?: null, 'name' => $cfg['name'] ?? null, 'frequency' => empty($cfg['frequency']) ? self::$default_frequency : $cfg['frequency'], 'duration' => $duration, 'id_user' => null, 'public' => 1, 'result' => $res ]) ){ $id_alias = $this->db->lastId(); } // Getting the ID of the observer corresponding to current user if ( $id_obs = $this->_get_id_from_user($request, $params) ){ if ($check_result) { $this->checkResult($id_obs); } return $id_obs; } else if ( $id_alias ){ if ( $this->db->insertIgnore('bbn_observers', [ 'id_user' => $this->id_user, 'public' => 0, 'id_alias' => $id_alias, 'next' => null, 'result' => $res ]) ){ return $this->db->lastId(); } } else{ if ( $this->db->insertIgnore('bbn_observers', [ 'request' => $request, 'params' => $params ?: null, 'name' => $cfg['name'] ?? null, 'duration' => $duration, 'id_user' => $this->id_user, 'public' => 0, 'result' => $res ]) ){ return $this->db->lastId(); } } } return null; }

Adds a new observer and returns its id or the id of an existing one. BBN is a suite of PHP and JS libraries and VueJS components - all open-source! bbn.io, build applications, the quick way

This website uses cookies to ensure you get the best experience on our website.