middleware('api'); } /** * Create a new team * * @param Request $request * * @return JsonResponse */ 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); } /** * Delete existing team * * @param Request $request * * @return JsonResponse */ public function delete($id) { $team = Team::find($id); $team->users()->detach(); $team->delete(); return response()->json([ 'message' => 'Team deleted successfully', 'team' => $team ], 201); } /** * Update existing team * * @param Request $request * * @return JsonResponse */ public function update($id, 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::find($id); $team->users()->detach(); $team->users()->attach( $userIdsArray ); $team->update($request->all()['data']); return response()->json([ 'message' => 'Team updated successfully', 'team' => $team ], 201); } }