mirror of
https://bitbucket.org/studiotem/jandl-taskmanager-app.git
synced 2026-10-21 14:29:34 +00:00
search endpoint
This commit is contained in:
1 parent
8b8ddc6502
commit
1402cd7a8f
1 file changed
+25
@@ -103,6 +103,29 @@ Route::middleware(['auth:sanctum', 'abilities:full-access'])->group(function ()
|
||||
Route::delete('/v1/blockers/{id}', BlockerController::class . '@delete');
|
||||
|
||||
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 () {
|
||||
@@ -132,3 +155,5 @@ Route::post('/v1/tokens/create', function (Request $request) {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user