birzha-legalizasia/routes/api.php

86 lines
3.6 KiB
PHP
Executable File

<?php
use App\Http\Controllers\API\ApplicationController;
use App\Http\Controllers\API\ClientController;
use App\Http\Controllers\API\ContractController;
use App\Http\Controllers\API\ResourceController;
use App\Http\Controllers\API\AccountController;
use App\Http\Controllers\API\TicketController;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
*/
Route::middleware(['localization'])->group(function (){
Route::post('/register', [ClientController::class, 'signup']);
Route::post('/login', [ClientController::class, 'login'])->middleware("throttle:30,30");
Route::post('/reset-password', [ClientController::class, 'updatePassword']);
Route::post('/forgot-password', [ClientController::class, 'sendPasswordResetLinkEmail']);
Route::post('/verify-email', [ClientController::class, 'verifyEmail']);
Route::get('/countries', [ResourceController::class, 'countries']);
Route::get('/categories', [ResourceController::class, 'categories']);
Route::get('/faqs', [ResourceController::class, 'faqs']);
Route::group(['prefix' => 'contract'],function(){
Route::post('/', [ContractController::class, 'contract']);
Route::post('import',[ContractController::class, 'import']);
});
// Route::post('/prof',[AccountController::class,'storeProfileInfo']);
Route::middleware(['auth.client','auth:api', 'auth:sanctum'])->group(function () {
/**
* Client endpoints
*/
Route::get('/client', [ClientController::class, 'client']);
Route::post('/logout', [ClientController::class, 'logout']);
Route::post('/update-client', [ClientController::class, 'updateClient']);
/**
* Account endpoints
*/
Route::group(['prefix' => 'account'], function () {
Route::get('/',[AccountController::class, 'account']);
Route::put('contacts',[AccountController::class,'storeContacts']);
Route::put('bank',[AccountController::class,'storeBankAccount']);
Route::post('add-client', [ClientController::class, 'registerClient']);
Route::get('clients', [ClientController::class, 'accountClients']);
Route::put('profile',[AccountController::class,'storeProfile'])->defaults('_config',[
'request_type' => 'profile'
]);
Route::put('profile-doc',[AccountController::class,'storeProfile'])->defaults('_config',[
'request_type' => 'document'
]);
});
/**
* Ticketing endpoints
*/
Route::group(['prefix' => 'ticket'], function () {
Route::get('/my-tickets',[TicketController::class, 'getTickets']);
Route::get('/ticket-messages',[TicketController::class,'getTicketMessages']);
Route::post('/post-message',[TicketController::class,'postMessage']);
Route::post('/post-ticket',[TicketController::class,'postTicket']);
});
/**
* Application endpoints
*/
Route::group(['prefix' => 'application'], function () {
Route::get('/',[ApplicationController::class,'get']);
Route::get('/oprosnik',[ApplicationController::class,'downloadQuestionaire']);
Route::get('new',[ApplicationController::class,'create']);
Route::post('upload/{attachment_id}',[ApplicationController::class,'upload']);
Route::post('apply',[ApplicationController::class,'apply']);
});
});
});