/** * Triggers an event. * * @param string $name The name of the event to trigger. * @param Model_Seller $seller The seller for which to trigger the event. * @param array $data Optional data to send to the event callback. * * @return bool */ public static function trigger($name, Model_Seller $seller, array $data = array()) { $callback = Service_Seller_Callback::find_one(array('seller' => $seller, 'event' => $name)); if (!$callback) { return false; } // Event name should always be included in the post data. $data['event'] = $name; $request = Request::forge($callback->url, 'curl'); $request->set_method('post'); $request->set_params($data); try { $request->execute(); } catch (FuelException $e) { Log::error($e); return false; } return true; }
/** * Attempts to get a seller callback from a given ID. * * @param int $id Seller callback ID. * * @return Model_Seller_Callback */ protected function get_callback($id) { $callback = Service_Seller_Callback::find_one(array('id' => $id, 'seller' => Seller::active())); if (!$callback) { throw new HttpNotFoundException(); } return $callback; }