public function handle(Navigation $navigation, Factory $validator, Dispatcher $dispatcher) { // check if user has permission if (!$this->disablePermissionChecking) { if (!$this->user->hasAnyPermission(['navigationBuilder.manage'])) { return new CommandResult(false, "Not enough permission.", null, 403); } } // validate data $validationResult = $validator->make(array('name' => $this->name, 'data' => $this->data), Navigation::$rules); if ($validationResult->fails()) { return new CommandResult(false, $validationResult->getMessageBag()->first(), null, 400); } if (!($nav = $navigation->find($this->id))) { return new CommandResult(false, 'Navigation does not exist.', null, 400); } // fire before create event $dispatcher->fire('navigationBuilder.updating', array($nav, $this->args)); $nav->name = $this->name; $nav->data = $this->data; $nav->save(); // fire after create $dispatcher->fire('navigationBuilder.updated', array($nav, $this->args)); // all good return new CommandResult(true, "Navigation successfully updated.", $nav, 200); }
/** * @param Navigation $navigation * @param Dispatcher $dispatcher * @return CommandResult */ public function handle(Navigation $navigation, Dispatcher $dispatcher) { // check if user has permission if (!$this->disablePermissionChecking) { if (!$this->user->hasAnyPermission(['navigationBuilder.manage'])) { return new CommandResult(false, "Not enough permission.", null, 403); } } // fire before create event $dispatcher->fire('navigationBuilder.beforeQuery', array($this->args)); if ($this->id && $this->id != '') { if (!($res = $navigation->with(array())->find($this->id))) { return new CommandResult(false, "Navigation does not exist.", null, 404); } } else { if ($this->paginated) { $res = $navigation->with(array())->paginate($this->perPage); } else { $res = $navigation->all(); } } // fire after create $dispatcher->fire('navigationBuilder.afterQuery', array($this->args)); // all good return new CommandResult(true, "List custom navigation command successful.", $res, 200); }
/** * @param Navigation $navigation * @param Factory $validator * @param Dispatcher $dispatcher * @return CommandResult */ public function handle(Navigation $navigation, Factory $validator, Dispatcher $dispatcher) { // check if user has permission if (!$this->disablePermissionChecking) { if (!$this->user->hasAnyPermission(['navigationBuilder.delete'])) { return new CommandResult(false, "Not enough permission.", null, 403); } } // make sure we have a navigation to delete if (!($nav = $navigation->find($this->id))) { return new CommandResult(false, "Navigation does not exist.", null, 400); } // fire before delete event $dispatcher->fire('navigationBuilder.deleting', array($nav, $this->args)); // delete $nav->delete(); // fire after create $dispatcher->fire('navigationBuilder.deleted', array($nav, $this->args)); // all good return new CommandResult(true, "Navigation successfully deleted.", null, 200); }
public function testShouldNowCreateIfAllCheckPointPassed() { $user = $this->createUserAndLoggedIn(array('navigationBuilder.manage' => 1)); $result = $this->commandDispatcher->dispatchFromArray('Darryldecode\\Backend\\Components\\Navigation\\Commands\\CreateNavigationCommand', array('name' => 'SomeNavigationName', 'data' => array('title' => 'home', 'class' => 'some-class', 'url' => 'www.url.com', 'items' => []))); $this->assertTrue($result->isSuccessful(), "Command should be a success."); $this->assertEquals(201, $result->getStatusCode(), "Status code should be created."); $this->assertEquals('Navigation successfully created.', $result->getMessage()); // prove that nav exist $this->assertCount(1, Navigation::all()->toArray()); $this->assertEquals('SomeNavigationName', Navigation::all()->first()->name); $this->assertInternalType('array', Navigation::all()->first()->data); }
protected function createDummyNavigation() { return Navigation::create(array('name' => 'main navigation', 'data' => array('title' => 'home', 'attr' => array('class' => 'some-class', 'id' => 'some-id'), 'url' => 'http://www.url.com', 'items' => []))); }
protected function createDummyData() { Navigation::create(array('name' => 'SomeNavigationName 1', 'data' => array(array('title' => 'home', 'class' => 'some-class', 'url' => 'www.url.com', 'items' => [])))); Navigation::create(array('name' => 'SomeNavigationName 2', 'data' => array(array('title' => 'home', 'class' => 'some-class', 'url' => 'www.url.com', 'items' => [])))); Navigation::create(array('name' => 'SomeNavigationName 3', 'data' => array(array('title' => 'home', 'class' => 'some-class', 'url' => 'www.url.com', 'items' => []), array('title' => 'about', 'class' => 'some-class', 'url' => 'www.url.com/about', 'items' => [])))); }