feat(api): 添加图片管理、回收站和系统设置功能
- 在 Grouping 模型和控制器中添加删除和更新方法 - 实现完整的图片上传、删除、预览和批量操作功能 - 添加图片清理功能用于删除冗余图片文件 - 实现 Markdown 文件按分组查询、搜索和标题更新功能 - 添加回收站功能支持软删除和恢复操作 - 实现系统设置和注册码生成功能 - 配置新的 API 路由包括图片、系统和回收站相关接口 - 更新前端开发服务器代理地址从 8084 到 80 端口
This commit is contained in:
@@ -4,6 +4,10 @@ use Slim\Routing\RouteCollectorProxy;
|
||||
use App\Controllers\UserController;
|
||||
use App\Controllers\MarkdownController;
|
||||
use App\Controllers\GroupingController;
|
||||
use App\Controllers\ImageController;
|
||||
use App\Controllers\SystemController;
|
||||
use App\Controllers\TrashController;
|
||||
use App\Controllers\ImageCleanupController;
|
||||
use App\Middleware\AuthMiddleware;
|
||||
|
||||
// 根路径测试路由
|
||||
@@ -37,15 +41,19 @@ $app->group('/api/user', function (RouteCollectorProxy $group) {
|
||||
$group->delete('/deleteUser', [UserController::class, 'deleteUser']);
|
||||
})->add(new AuthMiddleware());
|
||||
|
||||
// Markdown 相关路由
|
||||
// Markdown 相关路由(无需认证 - 公开阅读)
|
||||
$app->group('/api/markdown', function (RouteCollectorProxy $group) {
|
||||
$group->get('/{id}', [MarkdownController::class, 'getById']);
|
||||
$group->get('', [MarkdownController::class, 'getAll']);
|
||||
$group->get('/search', [MarkdownController::class, 'search']);
|
||||
$group->get('/grouping/{groupingId}', [MarkdownController::class, 'getByGroupingId']);
|
||||
$group->get('/recent', [MarkdownController::class, 'getRecent']);
|
||||
});
|
||||
|
||||
// Markdown 相关路由(需要认证)
|
||||
$app->group('/api/markdown', function (RouteCollectorProxy $group) {
|
||||
$group->post('/updateMarkdown', [MarkdownController::class, 'update']);
|
||||
$group->post('/{id}/title', [MarkdownController::class, 'updateTitle']);
|
||||
$group->delete('/{id}', [MarkdownController::class, 'delete']);
|
||||
})->add(new AuthMiddleware());
|
||||
|
||||
@@ -60,3 +68,40 @@ $app->group('/api/groupings', function (RouteCollectorProxy $group) {
|
||||
$group->put('/{id}', [GroupingController::class, 'update']);
|
||||
$group->delete('/{id}', [GroupingController::class, 'delete']);
|
||||
})->add(new AuthMiddleware());
|
||||
|
||||
// 图片相关路由(无需认证 - 公开预览)
|
||||
$app->group('/api/images', function (RouteCollectorProxy $group) {
|
||||
$group->get('/preview/{url}', [ImageController::class, 'preview']);
|
||||
});
|
||||
|
||||
// 图片相关路由(需要认证)
|
||||
$app->group('/api/images', function (RouteCollectorProxy $group) {
|
||||
$group->post('', [ImageController::class, 'upload']);
|
||||
$group->post('/{id}', [ImageController::class, 'delete']);
|
||||
$group->post('/deleteByUrl', [ImageController::class, 'deleteByUrl']);
|
||||
$group->post('/batch', [ImageController::class, 'batchDelete']);
|
||||
})->add(new AuthMiddleware());
|
||||
|
||||
// 系统设置相关路由(无需认证 - 公开查询注册状态)
|
||||
$app->group('/api/system', function (RouteCollectorProxy $group) {
|
||||
$group->get('/registration/status', [SystemController::class, 'getRegistrationStatus']);
|
||||
});
|
||||
|
||||
// 系统设置相关路由(需要认证)
|
||||
$app->group('/api/system', function (RouteCollectorProxy $group) {
|
||||
$group->post('/registration/toggle', [SystemController::class, 'toggleRegistration']);
|
||||
$group->post('/registration/generate-code', [SystemController::class, 'generateRegistrationCode']);
|
||||
})->add(new AuthMiddleware());
|
||||
|
||||
// 回收站相关路由(需要认证)
|
||||
$app->group('/api/trash', function (RouteCollectorProxy $group) {
|
||||
$group->get('', [TrashController::class, 'getTrashItems']);
|
||||
$group->post('/restore/{type}/{id}', [TrashController::class, 'restoreItem']);
|
||||
$group->delete('/permanently/{type}/{id}', [TrashController::class, 'permanentlyDeleteItem']);
|
||||
$group->delete('/clean', [TrashController::class, 'cleanTrash']);
|
||||
})->add(new AuthMiddleware());
|
||||
|
||||
// 管理员相关路由(需要认证 - 图片清理)
|
||||
$app->group('/api/admin', function (RouteCollectorProxy $group) {
|
||||
$group->post('/cleanup-images', [ImageCleanupController::class, 'cleanupImages']);
|
||||
})->add(new AuthMiddleware());
|
||||
|
||||
Reference in New Issue
Block a user