POST request /teams

This commit is contained in:
StudioTem committed 2023-01-30 10:25:31 +01:00
1 parent ca26843406
commit 5cb8ec7205
3 files changed
+27 -1

No files matched your search

@@ -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);
}
}
+1 -1
View File
@@ -11,7 +11,7 @@ class Team extends Model
public $timestamps = true;
protected $guarded = ['id', 'name'];
protected $guarded = ['id'];
public function users()
{
+3
View File
@@ -1,5 +1,6 @@
<?php
use App\Http\Controllers\TeamController;
use App\Http\Resources\MasterTaskCollection;
use App\Http\Resources\MasterTaskResource;
use App\Http\Resources\ProjectCollection;
@@ -32,6 +33,8 @@ Route::get('/v1/teams', function () {
return new TeamCollection(Team::all());
});
Route::post('/v1/teams', TeamController::class . '@store');
Route::get('/v1/teams/{id}', function ($id) {
return new TeamResource(Team::find($id));
});