/** * Creates a seller callback. * * @param int $seller_id Seller ID. * * @return void */ public function post_index($seller_id = null) { $validator = \Validation_Seller_Callback::create(); if (!$validator->run()) { throw new HttpBadRequestException($validator->errors()); } $data = $validator->validated(); $event = \Service_Event::find_one(array('name' => $data['event'])); $callback = \Service_Seller_Callback::create(\Seller::active(), $event, $data['url']); if (!$callback) { throw new HttpServerErrorException(); } $this->response($callback); }
/** * Updates a seller callback. * * @param Model_Seller_Callback $callback The seller callback to update. * @param array $data The data to use to update the seller callback. * * @return Model_Seller_Callback */ public static function update(Model_Seller_Callback $callback, array $data = array()) { if ($event_name = Arr::get($data, 'event')) { $event = \Service_Event::find_one(array('name' => $event_name)); if (!$event) { return false; } $callback->event = $event; } $callback->populate($data); try { $callback->save(); } catch (FuelException $e) { Log::error($e); return false; } return $callback; }
/** * POST Create action. * * @return void */ public function post_create() { $this->get_create(); $validator = Validation_Seller_Callback::create(); if (!$validator->run()) { Session::set_alert('error', __('form.error')); $this->view->errors = $validator->error(); return; } $data = $validator->validated(); $event = \Service_Event::find_one(array('name' => $data['event'])); if (Service_Seller_Callback::create(Seller::active(), $event, $data['url'])) { Session::set_alert('success', 'The event callback has been added.'); } else { Session::set_alert('error', 'There was an error adding the event callback.'); } Response::redirect('settings/callbacks'); }
/** * Creates a new validation instance for seller callback update. * * @return Validation */ public static function update() { $validator = Validation::forge('callback'); $input = Input::param(); if (array_key_exists('event', $input)) { $validator->add('event', 'Event Name')->add_rule('trim')->add_rule('required')->add_rule(array('invalid_event_name' => function ($event_name) { $event = Service_Event::find_one(array('name' => $event_name)); if (!$event) { return false; } return true; })); } if (array_key_exists('url', $input)) { $validator->add('url', 'Callback URL')->add_rule('trim')->add_rule('valid_url')->add_rule('required'); } return $validator; }