Files
jandl-taskmanager-app/be/app/Http/Controllers/TeamController.php
T
2023-01-30 10:39:10 +01:00

89 lines
2.2 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Team;
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');
}
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);
}
public function delete(Request $request)
{
$validator = Validator::make($request->all(), [
'data.id' => 'required',
]);
if($validator->fails()){
return response()->json($validator->errors(), 400);
}
$team = Team::find($request->all()['data']['id']);
$team->users()->detach();
$team->delete();
return response()->json([
'message' => 'Team deleted successfully',
'team' => $team
], 201);
}
public function update(Request $request)
{
$validator = Validator::make($request->all(), [
'data.id' => 'required',
'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($request->all()['data']['id']);
$team->users()->detach();
$team->users()->attach( $userIdsArray );
$team->update($request->all()['data']);
return response()->json([
'message' => 'Team updated successfully',
'team' => $team
], 201);
}
}