Files
jandl-taskmanager-app/be/routes/api.php
T
2023-02-08 13:01:43 +01:00

102 lines
3.3 KiB
PHP

<?php
use App\Http\Controllers\MasterTaskController;
use App\Http\Controllers\SubTaskController;
use App\Http\Controllers\TeamController;
use App\Http\Controllers\UserController;
use App\Http\Resources\MasterTaskCollection;
use App\Http\Resources\MasterTaskResource;
use App\Http\Resources\ProjectCollection;
use App\Http\Resources\SubTaskCollection;
use App\Http\Resources\SubTaskResource;
use App\Http\Resources\TeamCollection;
use App\Http\Resources\TeamResource;
use App\Http\Resources\UserCollection;
use App\Http\Resources\UserResource;
use App\Models\MasterTask;
use App\Models\Project;
use App\Models\SubTask;
use App\Models\Team;
use App\Models\User;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
//Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
// return $request->user();
//});
Route::get('/v1/teams', function () {
return new TeamCollection(Team::all());
});
Route::get('/v1/teams/{id}', function ($id) {
return new TeamResource(Team::find($id));
});
Route::post('/v1/teams', TeamController::class . '@store');
Route::put('/v1/teams/{id}', TeamController::class . '@update');
Route::delete('/v1/teams/{id}', TeamController::class . '@delete');
Route::get('/v1/employees', function () {
return new UserCollection(User::all());
});
Route::get('/v1/employees/{id}', function ($id) {
return new UserResource(User::find($id));
});
Route::get('/v1/projects', function () {
return new ProjectCollection(Project::all());
});
Route::get('/v1/mastertasks', function () {
return new MasterTaskCollection( MasterTask::all());
});
Route::get('/v1/mastertasks/{id}', function ($id) {
return new MasterTaskResource( MasterTask::find($id));
});
Route::post('/v1/mastertasks', MasterTaskController::class . '@store');
Route::put('/v1/mastertasks/{id}', MasterTaskController::class . '@update');
Route::delete('/v1/mastertasks/{id}', MasterTaskController::class . '@delete');
Route::get('/v1/mastertasks/{id}/subtasks', function ($id) {
return new SubTaskCollection( SubTask::whereHas('mastertask', function ($query) use ($id) {
$query->where('id', $id);
})->get());
});
Route::post('/v1/mastertasks/{id}/subtasks', SubTaskController::class . '@store');
Route::put('/v1/subtasks/{id}', SubTaskController::class . '@update');
Route::get('/v1/subtasks/{id}', function ($id) {
return new SubTaskResource( SubTask::find($id));
});
Route::get('/v1/subtasks/{id}', function ($id) {
return new SubTaskResource( SubTask::find($id));
});
Route::get('/v1/subtasks',SubTaskController::class . '@index');
Route::delete('/v1/subtasks/{id}', SubTaskController::class . '@delete');
//Route::post('/v1/subtasks/{id}/timesheet', function () {
// return new MasterTaskResource( SubTaskController::class . '@storeTimesheet');
//});
//
//Route::delete('/v1/subtasks/{id}/timesheet/{}', function () {
// return new MasterTaskResource( SubTaskController::class . '@storeTimesheet');
//});