Files
jandl-taskmanager-app/be/app/Http/Controllers/TeamController.php

103 lines
2.3 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Team;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
class TeamController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->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
]);
}
/**
* 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);
}
}