- Created ExampleTest and RoutesTest for basic application response and route testing. - Implemented IsolatedDatabaseTestCase for isolated database testing. - Added unit tests for various models and services including Contract, CPE, and LeadDetail. - Developed request validation tests for CreateClientRequest, UpdateClientRequest, and ContractRequest. - Introduced Vite configuration for asset management in the Laravel application.
75 lines
5.0 KiB
PHP
75 lines
5.0 KiB
PHP
<?php
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
use App\Http\Controllers\Api\{
|
|
AuthController, ClientController, ContractController, LeadController,
|
|
DashboardController, UserController, AccessController, ResourceController, AdminController
|
|
};
|
|
|
|
Route::post('login', [AuthController::class, 'login'])->middleware('throttle:10,1');
|
|
Route::post('password/email', [AuthController::class, 'sendResetLink'])->middleware('throttle:5,1');
|
|
Route::post('password/reset', [AuthController::class, 'resetPassword'])->middleware('throttle:5,1');
|
|
|
|
Route::middleware(['auth:sanctum', \App\Http\Middleware\EnsureApiUser::class])->group(function () {
|
|
Route::post('logout', [AuthController::class, 'logout']);
|
|
Route::post('refresh', [AuthController::class, 'refresh']);
|
|
Route::get('check-token', [AuthController::class, 'checkToken']);
|
|
Route::get('me', [AuthController::class, 'user']);
|
|
Route::get('dashboard', [DashboardController::class, 'index']);
|
|
Route::get('analytics', [DashboardController::class, 'analytics'])->middleware('role:administracao');
|
|
|
|
Route::post('user/pin', [UserController::class, 'savePin']);
|
|
Route::post('user/check-pin', [UserController::class, 'checkPin'])->middleware('throttle:10,1');
|
|
|
|
Route::prefix('clients')->group(function () {
|
|
Route::get('options', [ClientController::class, 'options']);
|
|
Route::get('search/name', [ClientController::class, 'searchName']);
|
|
Route::post('search/id', [ClientController::class, 'searchID']);
|
|
Route::get('{id}/detail', [ClientController::class, 'detail'])->whereNumber('id');
|
|
});
|
|
Route::apiResource('clients', ClientController::class)->parameters(['clients' => 'id'])->whereNumber('id');
|
|
|
|
Route::prefix('contracts')->group(function () {
|
|
Route::get('options', [ContractController::class, 'options']);
|
|
Route::get('export', [ContractController::class, 'export'])->middleware('can:view_contract_summary');
|
|
Route::delete('bulk', [ContractController::class, 'bulkDestroy']);
|
|
Route::get('{id}/edit', [ContractController::class, 'edit'])->whereNumber('id');
|
|
Route::get('{id}/renew', [ContractController::class, 'renewalOptions'])->whereNumber('id');
|
|
Route::post('{id}/renew', [ContractController::class, 'renew'])->whereNumber('id');
|
|
Route::get('{id}/history', [ContractController::class, 'history'])->whereNumber('id');
|
|
Route::get('{id}/history/{historyId}', [ContractController::class, 'showHistory'])->whereNumber(['id', 'historyId']);
|
|
Route::put('{id}/history/{historyId}', [ContractController::class, 'updateHistory'])->whereNumber(['id', 'historyId']);
|
|
Route::delete('{id}/history/{historyId}', [ContractController::class, 'destroyHistory'])->whereNumber(['id', 'historyId']);
|
|
});
|
|
Route::apiResource('contracts', ContractController::class)->parameters(['contracts' => 'id'])->whereNumber('id');
|
|
|
|
Route::get('leads/options', [LeadController::class, 'options']);
|
|
Route::put('leads/{id}/convert', [LeadController::class, 'convert'])->whereNumber('id');
|
|
Route::apiResource('leads', LeadController::class)->parameters(['leads' => 'id'])->whereNumber('id');
|
|
|
|
Route::middleware('role:admin')->group(function () {
|
|
Route::get('users/options', [UserController::class, 'options']);
|
|
Route::post('users/{user}/password-reset', [UserController::class, 'sendPasswordResetLink'])->whereNumber('user');
|
|
Route::apiResource('users', UserController::class)->whereNumber('user');
|
|
|
|
Route::prefix('admin')->group(function () {
|
|
Route::get('info', [AdminController::class, 'info']);
|
|
Route::get('phpinfo', [AdminController::class, 'phpInfo']);
|
|
Route::post('runMigrations', [AdminController::class, 'runMigrations']);
|
|
Route::post('testEmail', [AdminController::class, 'testEmail'])->middleware('throttle:5,1');
|
|
Route::get('access/roles-permissions', [AccessController::class, 'roles']);
|
|
Route::post('access/roles/{role}/permissions', [AccessController::class, 'updatePermissions'])->whereNumber('role');
|
|
Route::get('access/users', [AccessController::class, 'users']);
|
|
Route::post('access/users/{user}/roles', [AccessController::class, 'updateRoles'])->whereNumber('user');
|
|
});
|
|
});
|
|
|
|
Route::middleware('can:manage_resources')->prefix('resources')->group(function () {
|
|
$resources = 'power_tiers|contract_types|payment_methods|typologies|cui_tiers|suppliers|contract-statuses';
|
|
Route::get('{resource}', [ResourceController::class, 'index'])->where('resource', $resources);
|
|
Route::post('{resource}', [ResourceController::class, 'store'])->where('resource', $resources);
|
|
Route::get('{resource}/{id}', [ResourceController::class, 'show'])->where('resource', $resources)->whereNumber('id');
|
|
Route::put('{resource}/{id}', [ResourceController::class, 'update'])->where('resource', $resources)->whereNumber('id');
|
|
Route::delete('{resource}/{id}', [ResourceController::class, 'destroy'])->where('resource', $resources)->whereNumber('id');
|
|
});
|
|
}); |