search endpoint

This commit is contained in:
StudioTem committed 2023-04-04 09:40:58 +02:00
1 parent 8b8ddc6502
commit 1402cd7a8f
1 file changed
+25
+25
View File
@@ -103,6 +103,29 @@ Route::middleware(['auth:sanctum', 'abilities:full-access'])->group(function ()
Route::delete('/v1/blockers/{id}', BlockerController::class . '@delete'); Route::delete('/v1/blockers/{id}', BlockerController::class . '@delete');
Route::put('/v1/users/{id}', UserController::class . '@update'); Route::put('/v1/users/{id}', UserController::class . '@update');
Route::post('/v1/search', function (Request $request) {
$search = $request->all()['data']['search'];
$projectIDs = Project::where('name', 'like', '%' . $search . '%')->orWhere('code', 'like', '%' . $search . '%')->get()->pluck('id');
$userIDs = User::where('firstname', 'like', '%' . $search . '%')->orWhere('lastname', 'like', '%' . $search . '%')->get()->pluck('id');
$teams = Team::whereHas('users', function($q) use($userIDs) {
$q->whereIn('user_id', $userIDs);
})->get();
$mastertasks = MasterTask::with('subtasks')->where('title', 'like', '%' . $search . '%')->orWhereIn('project_id', $projectIDs)->orWhereIn('team_id', $teams->pluck('id'))->get();
$subtasks = $mastertasks->pluck('subtasks')->flatten();
return [
'teams' => new TeamCollection($teams),
'mastertasks' => new MasterTaskCollection($mastertasks),
'subtasks' => new SubTaskCollection($subtasks),
];
});
}); });
Route::middleware(['auth:sanctum', 'abilities:password-reset'])->group(function () { Route::middleware(['auth:sanctum', 'abilities:password-reset'])->group(function () {
@@ -132,3 +155,5 @@ Route::post('/v1/tokens/create', function (Request $request) {