From 5cb8ec7205f624853ddba646ce7417a5c026c3ef Mon Sep 17 00:00:00 2001 From: Michal Feher Date: Mon, 30 Jan 2023 10:25:31 +0100 Subject: [PATCH] POST request /teams --- be/app/Http/Controllers/TeamController.php | 23 ++++++++++++++++++++++ be/app/Models/Team.php | 2 +- be/routes/api.php | 3 +++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/be/app/Http/Controllers/TeamController.php b/be/app/Http/Controllers/TeamController.php index 8b2a103..471fe69 100644 --- a/be/app/Http/Controllers/TeamController.php +++ b/be/app/Http/Controllers/TeamController.php @@ -2,7 +2,9 @@ namespace App\Http\Controllers; +use App\Models\Team; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Validator; class TeamController extends Controller { @@ -17,4 +19,25 @@ class TeamController extends Controller $this->middleware('api'); } + public function store(Request $request) + { + $validator = Validator::make($request->all(), [ + 'data.name' => 'required', + 'data.employees' => 'required', + ]); + + if($validator->fails()){ + return response()->json($validator->errors(), 400); + } + + $userIdsArray = array_column($request->all()['data']['employees'], 'id'); + + $team = Team::create($request->all()['data']); + $team->users()->attach( $userIdsArray ); + + return response()->json([ + 'message' => 'Team created successfully', + 'team' => $team + ], 201); + } } diff --git a/be/app/Models/Team.php b/be/app/Models/Team.php index ace6c1a..92663f1 100644 --- a/be/app/Models/Team.php +++ b/be/app/Models/Team.php @@ -11,7 +11,7 @@ class Team extends Model public $timestamps = true; - protected $guarded = ['id', 'name']; + protected $guarded = ['id']; public function users() { diff --git a/be/routes/api.php b/be/routes/api.php index 36af5ce..8859024 100644 --- a/be/routes/api.php +++ b/be/routes/api.php @@ -1,5 +1,6 @@