Files
portal-api/routes/client.php
T

66 lines
2.5 KiB
PHP

<?php
use App\Http\Controllers\Api\Setting\SettingController;
use App\Http\Controllers\Api\Client\ClientController;
use App\Http\Controllers\Api\Service\OrderController;
use App\Http\Controllers\Api\Service\ProductCategoryController;
use App\Http\Controllers\Api\Service\ServiceController;
use Illuminate\Support\Facades\Route;
Route::prefix('v1')->group(function () {
// Auth
Route::prefix('client')->as('client.')
->group(function () {
Route::controller(ClientController::class)->group(function () {
Route::post('login', 'login')->name('login');
Route::post('register', 'register')->name('register');
Route::group(['middleware' => ['api.auth']], function () {
Route::get('me', 'me')->name('me');
Route::post('logout', 'logout')->name('logout');
});
});
});
// Services (Products) - Public & Protected Routes
Route::prefix('services')->as('services.')->group(function () {
Route::controller(ServiceController::class)->group(function () {
Route::get('get-list', 'getService')->name('getList');
Route::get('{product:slug}', 'getDetailService')->name('detail');
});
});
Route::middleware(['api.auth'])->prefix('orders')->as('orders.')->group(function () {
Route::controller(OrderController::class)->group(function () {
Route::get('/', 'getList')->name('list');
Route::post('/', 'storeOrder')->name('store');
Route::post('{id}/pay', 'payOrder')->name('pay');
});
});
Route::prefix('setting')->as('setting.')->group(function () {
Route::controller(SettingController::class)->group(function () {
Route::get('/', 'getSetting')->name('get');
});
});
// Product Categories - Protected Routes
Route::middleware(['api.auth'])->prefix('group')->as('product-categories.')->group(function () {
Route::controller(ProductCategoryController::class)->group(function () {
Route::get('get-list', 'getCategories')->name('getList');
Route::get('{product_categories:slug}', 'getDetailCategory')->name('detail');
Route::get('{parentSlug}/{childSlug}', 'getChildCategoryWithParent')->name('childWithParent');
});
});
});
Route::any('{any}', function () {
return response()->json([
'error' => true,
'message' => 'API Route not found'
], 404);
})->where('any', '.*');