Files
sam-api/routes/api.php
2025-08-04 08:35:31 +09:00

75 lines
3.2 KiB
PHP

<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\V1\CommonController;
use App\Http\Controllers\Api\V1\ApiController;
use App\Http\Controllers\Api\V1\MemberController;
use App\Http\Controllers\Api\V1\AdminApiController;
use App\Http\Controllers\Api\V1\FileController;
use App\Http\Controllers\Api\V1\ProductController;
use App\Http\Controllers\Api\V1\MaterialController;
use App\Http\Controllers\Api\V1\ModelController;
use App\Http\Controllers\Api\V1\BomController;
// error test
Route::get('/test-error', function () {
throw new \Exception('슬랙 전송 테스트 예외');
});
// V1 초기 개발
Route::prefix('v1')->group(function () {
# SAM API
Route::middleware('auth.apikey')->group(function () {
# Auth API
Route::post('/login', [ApiController::class, 'login']);
Route::middleware('auth:sanctum')->post('/logout', [ApiController::class, 'logout']);
# API KEY 인증
Route::middleware('auth.apikey')->get('/debug-apikey', [ApiController::class, 'debugApikey']);
// Admin API
Route::post('/admin/list', [AdminApiController::class, 'list'])->middleware('permission:SR'); // 관리자 리스트 조회
// Common API
Route::prefix('common')->group(function () {
Route::get('/code', [CommonController::class, 'getComeCode'])->name('common.code'); // 공통코드 조회
});
// Product API
Route::prefix('product')->group(function () {
Route::get('/category', [ProductController::class, 'getCategory'])->name('product.category'); // 제품 카테고리
});
// Member API
Route::prefix('member')->group(function () {
Route::get('/me', [MemberController::class, 'me'])->name('member.me'); // 내 정보 조회
Route::get('/index', [MemberController::class, 'index'])->name('member.index'); // 회원 목록 조회
Route::get('/show/{user_no}', [MemberController::class, 'show'])->name('member.show'); // 회원 상세 조회
Route::post('/store', [MemberController::class, 'store'])->name('member.store')->middleware('permission:AC'); // 회원 저장 (등록/수정)
});
// File API
Route::prefix('file')->group(function () {
Route::post('/upload', [FileController::class, 'upload'])->name('file.upload'); // 파일 업로드 (등록/수정)
Route::get('/list', [FileController::class, 'list'])->name('file.list'); // 파일 목록 조회
Route::delete('/delete', [FileController::class, 'delete'])->name('file.delete'); // 파일 삭제
Route::get('/info', [FileController::class, 'findFile'])->name('file.info'); // 파일 정보 조회
});
// Material, Model, BOM API
Route::resource('materials', MaterialController::class)->except(['create', 'edit']); // 자재관리
Route::resource('models', ModelController::class)->except(['create', 'edit']); // 모델관리
Route::resource('boms', BomController::class)->except(['create', 'edit']); // BOM관리
});
});