diff --git a/app/Commands/ComponentGroup/AddComponentGroupCommand.php b/app/Commands/ComponentGroup/AddComponentGroupCommand.php new file mode 100644 index 00000000..1ca433d2 --- /dev/null +++ b/app/Commands/ComponentGroup/AddComponentGroupCommand.php @@ -0,0 +1,53 @@ + 'required|string', + 'order' => 'integer', + ]; + + /** + * Create a add component group command instance. + * + * @param string $name + * @param int $order + * + * @return void + */ + public function __construct($name, $order) + { + $this->name = $name; + $this->order = (int) $order; + } +} diff --git a/app/Handlers/Commands/ComponentGroup/AddComponentGroupCommandHandler.php b/app/Handlers/Commands/ComponentGroup/AddComponentGroupCommandHandler.php new file mode 100644 index 00000000..4cc7025d --- /dev/null +++ b/app/Handlers/Commands/ComponentGroup/AddComponentGroupCommandHandler.php @@ -0,0 +1,38 @@ + $command->name, + 'order' => $command->order, + ]); + + event(new ComponentGroupWasAddedEvent($group)); + + return $group; + } +} diff --git a/app/Http/Controllers/Api/ComponentGroupController.php b/app/Http/Controllers/Api/ComponentGroupController.php index 2a871047..dcf691a3 100644 --- a/app/Http/Controllers/Api/ComponentGroupController.php +++ b/app/Http/Controllers/Api/ComponentGroupController.php @@ -11,6 +11,7 @@ namespace CachetHQ\Cachet\Http\Controllers\Api; +use CachetHQ\Cachet\Commands\ComponentGroup\AddComponentGroupCommand; use CachetHQ\Cachet\Commands\ComponentGroup\RemoveComponentGroupCommand; use CachetHQ\Cachet\Models\ComponentGroup; use Exception; @@ -56,10 +57,11 @@ class ComponentGroupController extends AbstractApiController */ public function postGroups() { - $groupData = array_filter(Binput::only(['name', 'order'])); - try { - $group = ComponentGroup::create($groupData); + $group = $this->dispatch(new AddComponentGroupCommand( + Binput::get('name'), + Binput::get('order', 0) + )); } catch (Exception $e) { throw new BadRequestHttpException(); } @@ -81,7 +83,6 @@ class ComponentGroupController extends AbstractApiController try { $group->update($groupData); } catch (Exception $e) { - dd($e->getMessage()); throw new BadRequestHttpException(); } diff --git a/app/Http/Controllers/Dashboard/ComponentController.php b/app/Http/Controllers/Dashboard/ComponentController.php index 49d52fbf..84df5ec1 100644 --- a/app/Http/Controllers/Dashboard/ComponentController.php +++ b/app/Http/Controllers/Dashboard/ComponentController.php @@ -14,6 +14,7 @@ namespace CachetHQ\Cachet\Http\Controllers\Dashboard; use AltThree\Validator\ValidationException; use CachetHQ\Cachet\Commands\Component\AddComponentCommand; use CachetHQ\Cachet\Commands\Component\RemoveComponentCommand; +use CachetHQ\Cachet\Commands\ComponentGroup\AddComponentGroupCommand; use CachetHQ\Cachet\Commands\ComponentGroup\RemoveComponentGroupCommand; use CachetHQ\Cachet\Models\Component; use CachetHQ\Cachet\Models\ComponentGroup; @@ -246,7 +247,10 @@ class ComponentController extends Controller public function postAddComponentGroup() { try { - $group = ComponentGroup::create(Binput::get('group')); + $group = $this->dispatch(new AddComponentGroupCommand( + Binput::get('name'), + Binput::get('order', 0) + )); } catch (ValidationException $e) { return Redirect::route('dashboard.components.groups.add') ->withInput(Binput::all()) diff --git a/app/Models/ComponentGroup.php b/app/Models/ComponentGroup.php index 4f1cdf5d..f78aa276 100644 --- a/app/Models/ComponentGroup.php +++ b/app/Models/ComponentGroup.php @@ -42,7 +42,7 @@ class ComponentGroup extends Model * @var string[] */ public $rules = [ - 'name' => 'required', + 'name' => 'required|string', 'order' => 'integer', ]; diff --git a/resources/views/dashboard/components/groups/add.blade.php b/resources/views/dashboard/components/groups/add.blade.php index d0f9073b..ece35042 100644 --- a/resources/views/dashboard/components/groups/add.blade.php +++ b/resources/views/dashboard/components/groups/add.blade.php @@ -19,7 +19,7 @@
- +