- feat: [barobill] 바로빌 카드/은행/홈택스 REST API 구현 - feat: [equipment] 설비관리 API 백엔드 구현 - feat: [payroll] 급여관리 계산 엔진 및 일괄 처리 API - feat: [QMS] 점검표 템플릿 관리 + 로트심사 개선 - feat: [생산/출하] 수주 단위 출하 자동생성 + 상태 흐름 개선 - feat: [receiving] 입고 성적서 파일 연결 - feat: [견적] 제어기 타입 체계 변경 - feat: [email] 테넌트 메일 설정 마이그레이션 및 모델 - feat: [pmis] 시공관리 테이블 마이그레이션 - feat: [R2] 파일 업로드 커맨드 + filesystems 설정 - feat: [배포] Jenkinsfile 롤백 기능 추가 - fix: [approval] SAM API 규칙 준수 코드 개선 - fix: [account-codes] 계정과목 중복 데이터 정리 - fix: [payroll] 일괄 생성 시 삭제된 사용자 건너뛰기 - fix: [db] codebridge DB 분리 후 깨진 FK 제약조건 제거 - refactor: [barobill] 바로빌 연동 코드 전면 개선
46 lines
3.2 KiB
PHP
46 lines
3.2 KiB
PHP
<?php
|
|
|
|
/**
|
|
* 파일 관리 API 라우트 (v1)
|
|
*
|
|
* - 파일 업로드/다운로드
|
|
* - 폴더 관리
|
|
* - 저장소 사용량
|
|
* - 공유 링크
|
|
*/
|
|
|
|
use App\Http\Controllers\Api\V1\FileStorageController;
|
|
use App\Http\Controllers\Api\V1\FolderController;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
// 파일 저장소 API
|
|
Route::prefix('files')->group(function () {
|
|
Route::post('/upload', [FileStorageController::class, 'upload'])->name('v1.files.upload'); // 파일 업로드 (임시)
|
|
Route::post('/move', [FileStorageController::class, 'move'])->name('v1.files.move'); // 파일 이동 (temp → folder)
|
|
Route::get('/', [FileStorageController::class, 'index'])->name('v1.files.index'); // 파일 목록
|
|
Route::get('/trash', [FileStorageController::class, 'trash'])->name('v1.files.trash'); // 휴지통 목록
|
|
Route::get('/{id}', [FileStorageController::class, 'show'])->name('v1.files.show'); // 파일 상세
|
|
Route::get('/{id}/download', [FileStorageController::class, 'download'])->name('v1.files.download'); // 파일 다운로드
|
|
Route::get('/{id}/view', [FileStorageController::class, 'view'])->name('v1.files.view'); // 파일 인라인 보기 (이미지/PDF)
|
|
Route::delete('/{id}', [FileStorageController::class, 'destroy'])->name('v1.files.destroy'); // 파일 삭제 (soft)
|
|
Route::post('/{id}/restore', [FileStorageController::class, 'restore'])->name('v1.files.restore'); // 파일 복구
|
|
Route::delete('/{id}/permanent', [FileStorageController::class, 'permanentDelete'])->name('v1.files.permanent'); // 파일 영구 삭제
|
|
Route::post('/{id}/share', [FileStorageController::class, 'createShareLink'])->name('v1.files.share'); // 공유 링크 생성
|
|
});
|
|
|
|
// 저장소 사용량
|
|
Route::get('/storage/usage', [FileStorageController::class, 'storageUsage'])->name('v1.storage.usage');
|
|
|
|
// 폴더 관리 API
|
|
Route::prefix('folders')->group(function () {
|
|
Route::get('/', [FolderController::class, 'index'])->name('v1.folders.index'); // 폴더 목록
|
|
Route::post('/', [FolderController::class, 'store'])->name('v1.folders.store'); // 폴더 생성
|
|
Route::get('/{id}', [FolderController::class, 'show'])->name('v1.folders.show'); // 폴더 상세
|
|
Route::put('/{id}', [FolderController::class, 'update'])->name('v1.folders.update'); // 폴더 수정
|
|
Route::delete('/{id}', [FolderController::class, 'destroy'])->name('v1.folders.destroy'); // 폴더 삭제/비활성화
|
|
Route::post('/reorder', [FolderController::class, 'reorder'])->name('v1.folders.reorder'); // 폴더 순서 변경
|
|
});
|
|
|
|
// 공유 링크 다운로드 (인증 불필요 - 메인 api.php에서 v1 그룹 밖으로 분리)
|
|
// Route::get('/files/share/{token}', [FileStorageController::class, 'downloadShared'])->name('v1.files.share.download');
|