From e3bb4a15de59335b85015a5c5929ca9f3d0eb4b1 Mon Sep 17 00:00:00 2001 From: Joseph Cohen Date: Wed, 18 Feb 2015 03:21:30 -0600 Subject: [PATCH 1/2] Component can be created with tags from API --- .../Controllers/Api/ComponentController.php | 22 ++++++++++++++++++- src/Models/Component.php | 2 +- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/Http/Controllers/Api/ComponentController.php b/src/Http/Controllers/Api/ComponentController.php index 3d157b0a..d47582f3 100644 --- a/src/Http/Controllers/Api/ComponentController.php +++ b/src/Http/Controllers/Api/ComponentController.php @@ -3,6 +3,7 @@ namespace CachetHQ\Cachet\Http\Controllers\Api; use CachetHQ\Cachet\Repositories\Component\ComponentRepository; +use CachetHQ\Cachet\Models\Tag; use Dingo\Api\Routing\ControllerTrait; use GrahamCampbell\Binput\Facades\Binput; use Illuminate\Routing\Controller; @@ -71,7 +72,26 @@ class ComponentController extends Controller */ public function postComponents() { - return $this->component->create($this->auth->user()->id, Binput::all()); + $component = $this->component->create( + $this->auth->user()->id, + Binput::except('tags') + ); + + if (Binput::has('tags')) { + // The component was added successfully, so now let's deal with the tags. + $tags = preg_split('/ ?, ?/', Binput::get('tags')); + + // For every tag, do we need to create it? + $componentTags = array_map(function ($taggable) use ($component) { + return Tag::firstOrCreate([ + 'name' => $taggable, + ])->id; + }, $tags); + + $component->tags()->sync($componentTags); + } + + return $component; } /** diff --git a/src/Models/Component.php b/src/Models/Component.php index 0db18595..df0a0b91 100644 --- a/src/Models/Component.php +++ b/src/Models/Component.php @@ -34,7 +34,7 @@ class Component extends Model implements TransformableInterface protected $rules = [ 'user_id' => 'integer|required', 'name' => 'required', - 'status' => 'integer', + 'status' => 'integer|required', 'link' => 'url', ]; From 42630340dbbf62525f0f401d538d262deba3eb3c Mon Sep 17 00:00:00 2001 From: Joseph Cohen Date: Wed, 18 Feb 2015 03:24:43 -0600 Subject: [PATCH 2/2] CS Fixes --- app/config/packages/dingo/api/config.php | 2 +- app/routes/dashboard.php | 2 +- src/Http/Controllers/Api/ComponentController.php | 2 +- src/Http/Controllers/DashUserController.php | 2 +- src/Http/Controllers/SetupController.php | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/config/packages/dingo/api/config.php b/app/config/packages/dingo/api/config.php index c67db75c..cdf0f1b0 100644 --- a/app/config/packages/dingo/api/config.php +++ b/app/config/packages/dingo/api/config.php @@ -154,6 +154,6 @@ return [ 'json' => new Dingo\Api\Http\ResponseFormat\JsonResponseFormat(), - ] + ], ]; diff --git a/app/routes/dashboard.php b/app/routes/dashboard.php index e3d7a290..71d59ccb 100644 --- a/app/routes/dashboard.php +++ b/app/routes/dashboard.php @@ -93,7 +93,7 @@ Route::group(['before' => 'auth', 'prefix' => 'dashboard', 'namespace' => 'Cache Route::group(['before' => 'admin'], function () { Route::get('add', [ 'as' => 'dashboard.team.add', - 'uses' => 'DashTeamController@showAddTeamMemberView' + 'uses' => 'DashTeamController@showAddTeamMemberView', ]); Route::get('{user}', 'DashTeamController@showTeamMemberView'); Route::post('add', 'DashTeamController@postAddUser'); diff --git a/src/Http/Controllers/Api/ComponentController.php b/src/Http/Controllers/Api/ComponentController.php index d47582f3..13c1fc6e 100644 --- a/src/Http/Controllers/Api/ComponentController.php +++ b/src/Http/Controllers/Api/ComponentController.php @@ -2,8 +2,8 @@ namespace CachetHQ\Cachet\Http\Controllers\Api; -use CachetHQ\Cachet\Repositories\Component\ComponentRepository; use CachetHQ\Cachet\Models\Tag; +use CachetHQ\Cachet\Repositories\Component\ComponentRepository; use Dingo\Api\Routing\ControllerTrait; use GrahamCampbell\Binput\Facades\Binput; use Illuminate\Routing\Controller; diff --git a/src/Http/Controllers/DashUserController.php b/src/Http/Controllers/DashUserController.php index a5a2c250..85e1a76b 100644 --- a/src/Http/Controllers/DashUserController.php +++ b/src/Http/Controllers/DashUserController.php @@ -87,7 +87,7 @@ class DashUserController extends Controller public function regenerateApiKey(User $user) { segment_track('User Management', [ - 'event' => 'regenrated_api_token' + 'event' => 'regenrated_api_token', ]); $user->api_key = User::generateApiKey(); diff --git a/src/Http/Controllers/SetupController.php b/src/Http/Controllers/SetupController.php index b1aae56c..1c276d56 100644 --- a/src/Http/Controllers/SetupController.php +++ b/src/Http/Controllers/SetupController.php @@ -88,7 +88,7 @@ class SetupController extends Controller 'settings.show_support' => 'boolean', 'user.username' => 'alpha_num|required', 'user.email' => 'email|required', - 'user.password' => 'required' + 'user.password' => 'required', ]); if ($v->passes()) {