115 lines
5.2 KiB
PHP
115 lines
5.2 KiB
PHP
<?php
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Route;
|
|
use App\Http\Controllers\Api\DynamicResourceController;
|
|
use App\Http\Controllers\Api\AuthController;
|
|
use App\Http\Controllers\Api\EndpointController;
|
|
use App\Http\Controllers\Api\AutocompleteTypeController;
|
|
use App\Http\Controllers\Api\SettingController;
|
|
|
|
use App\Http\Controllers\InspectionHistoryController;
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| 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!
|
|
|
|
|
*/
|
|
|
|
// Public Routes
|
|
Route::get('/mobile-types-test', [\App\Http\Controllers\Api\MobileTypeController::class, 'index']);
|
|
Route::get('/project-app-urls', [App\Http\Controllers\Api\ProjectAppUrlsController::class, 'index']);
|
|
Route::post('/login', [AuthController::class, 'login']);
|
|
Route::get('/stats/dashboard-stats', [\App\Http\Controllers\Api\StatsController::class, 'dashboardStats'])->middleware('check.static_hash');
|
|
Route::get('/dashboard/summary', [\App\Http\Controllers\Api\DashboardController::class, 'summary']);
|
|
|
|
// Protected Routes
|
|
Route::middleware(['auth:sanctum'])->group(function () {
|
|
|
|
Route::post('/logout', [AuthController::class, 'logout']);
|
|
Route::get('/me', [AuthController::class, 'me']);
|
|
Route::get('/user', function (Request $request) {
|
|
return $request->user();
|
|
});
|
|
|
|
// NAKS Sync Trigger
|
|
Route::post('/naks/trigger-sync', [\App\Http\Controllers\Api\NaksSyncController::class, 'triggerSync']);
|
|
|
|
// Mobile Types
|
|
Route::get('/mobile-types', [\App\Http\Controllers\Api\MobileTypeController::class, 'index']);
|
|
|
|
// Inspection History
|
|
Route::prefix('inspection-history')->group(function () {
|
|
Route::get('/modules', [InspectionHistoryController::class, 'modules']);
|
|
Route::get('/', [InspectionHistoryController::class, 'list']);
|
|
Route::post('/', [InspectionHistoryController::class, 'upload']);
|
|
Route::post('/upload-other', [InspectionHistoryController::class, 'uploadOther']);
|
|
Route::delete('/{id}', [InspectionHistoryController::class, 'delete']);
|
|
Route::post('/bulk-delete', [InspectionHistoryController::class, 'bulkDelete']);
|
|
});
|
|
|
|
|
|
|
|
|
|
// Document History
|
|
Route::match(['get', 'post'], '/document-history', [\App\Http\Controllers\Api\DocumentHistoryController::class, 'index']);
|
|
|
|
// Mobile-safe autocomplete-type endpoints (hashless)
|
|
Route::post('/autocomplete-type/{type}', [AutocompleteTypeController::class, 'handle']);
|
|
|
|
// Setting retrieval
|
|
Route::get('/settings/common', [SettingController::class, 'common']);
|
|
Route::get('/settings/{key}', [SettingController::class, 'get']);
|
|
|
|
// Work Permit Hierarchy
|
|
Route::get('/work-permit/hierarchy', [\App\Http\Controllers\Api\WorkPermitHierarchyController::class, 'index']);
|
|
|
|
// Spool Release Workflow
|
|
Route::post('/spool-release/advance', [\App\Http\Controllers\Api\SpoolReleaseWorkflowController::class, 'advance']);
|
|
Route::post('/spool-release/rollback', [\App\Http\Controllers\Api\SpoolReleaseWorkflowController::class, 'rollback']);
|
|
|
|
// Endpoints - Admin-Ajax API Service
|
|
Route::prefix('endpoints')->group(function () {
|
|
Route::get('/', [EndpointController::class, 'index'])->name('endpoints.index');
|
|
Route::get('/{endpoint}/info', [EndpointController::class, 'info'])->name('endpoints.info');
|
|
Route::match(['get', 'post'], '/{endpoint}', [EndpointController::class, 'handle'])
|
|
->where('endpoint', '[a-zA-Z0-9\-_\/]+')
|
|
->name('endpoints.handle');
|
|
});
|
|
|
|
// Dynamic Headless API Routes (Firewall & Advanced Auth included)
|
|
Route::middleware([
|
|
'api',
|
|
\App\Http\Middleware\IpFirewall::class,
|
|
\App\Http\Middleware\AdvancedAuth::class
|
|
])->group(function () {
|
|
|
|
// Permission Check Endpoint
|
|
Route::get('/auth-check/{module}/{permission?}', [DynamicResourceController::class, 'checkAuth']);
|
|
|
|
// Table Column Values Endpoint
|
|
Route::get('/table-column-values', [DynamicResourceController::class, 'getTableColumnValues']);
|
|
|
|
|
|
Route::prefix('stats')->group(function () {
|
|
Route::get('/ndt-calculation', [\App\Http\Controllers\Api\StatsController::class, 'ndtCalculation']);
|
|
Route::get('/ndt-calculation/test-packs', [\App\Http\Controllers\Api\StatsController::class, 'ndtCalculationTestPacks']);
|
|
Route::get('/ndt-calculation/backlogs', [\App\Http\Controllers\Api\StatsController::class, 'ndtCalculationBacklogs']);
|
|
Route::get('/welding-by-project', [\App\Http\Controllers\Api\StatsController::class, 'weldingByProject']);
|
|
});
|
|
|
|
// Dynamic CRUD & View Rendering (includes weld_logs/summary)
|
|
// Matches: /api/users/read, /api/weld_logs/summary, /api/products/view
|
|
Route::match(['get', 'post', 'put', 'patch', 'delete', 'options'], '/{table}/{action}', [DynamicResourceController::class, 'handle'])
|
|
->where('action', 'read|list|get|create|store|insert|update|save|delete|remove|view|render|summary|calculate|columns|values');
|
|
|
|
});
|
|
|
|
});
|
|
|