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 @@