feat(admin): add cloud type management
This commit is contained in:
@@ -1148,7 +1148,77 @@ token 必须同时匹配规范化邮箱、HMAC 摘要、`password_reset` purpose
|
||||
|
||||
> ⚠️ **假端点**(2.3 第 4 条):通过 zod 校验后**原样回显请求体(含明文密码)**,不创建任何用户。响应为 `200 { name, email, password, role }`。请勿接入,更不要在任何持久化日志中记录其响应。
|
||||
|
||||
### 8.6 `GET /admin/clouds` — 全状态云图列表
|
||||
### 8.6 `POST /admin/cloudtypes` — 添加云类型
|
||||
|
||||
- **认证**:admin
|
||||
|
||||
**请求体**(JSON):
|
||||
|
||||
| 参数 | 类型 | 必填 | 约束 | 说明 |
|
||||
|---|---|---|---|---|
|
||||
| `name` | string | 是 | 去除首尾空白后非空 | 云类型名称 |
|
||||
| `genus` | string\|null | 否 | 默认 `null` | 属;传 `null` 表示未设置 |
|
||||
| `icon_id` | uuid\|null | 否 | 默认 `null` | 图标 ID;传 `null` 表示未设置 |
|
||||
| `rarity` | int | 是 | — | 稀有度 |
|
||||
| `description` | string | 是 | 最长 128 字符 | 描述,可为空字符串 |
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "积云",
|
||||
"genus": "Cumulus",
|
||||
"icon_id": null,
|
||||
"rarity": 1,
|
||||
"description": "底部平坦、顶部蓬松的白色云块"
|
||||
}
|
||||
```
|
||||
|
||||
**成功响应**:`201`
|
||||
|
||||
```json
|
||||
{
|
||||
"status_code": 201,
|
||||
"message": "云类型添加成功",
|
||||
"cloud_type_id": 12
|
||||
}
|
||||
```
|
||||
|
||||
云类型 ID 由服务端生成;并发添加不会分配重复 ID。参数校验失败返回 400,数据库异常返回 500。
|
||||
|
||||
### 8.7 `PATCH /admin/cloudtypes/:cloud_type_id` — 修改云类型
|
||||
|
||||
- **认证**:admin
|
||||
|
||||
**路径参数**:`cloud_type_id`(int)。请求体字段与 8.6 相同,但均为可选;至少须提供一个字段。仅提交的字段会被修改,`genus` 和 `icon_id` 可显式传 `null` 清空。
|
||||
|
||||
**成功响应**:`200`
|
||||
|
||||
```json
|
||||
{
|
||||
"status_code": 200,
|
||||
"message": "云类型修改成功"
|
||||
}
|
||||
```
|
||||
|
||||
**错误**:参数或空请求体无效返回 400;云类型不存在返回 404 `云类型不存在`;数据库异常返回 500。
|
||||
|
||||
### 8.8 `DELETE /admin/cloudtypes/:cloud_type_id` — 删除云类型
|
||||
|
||||
- **认证**:admin
|
||||
|
||||
**路径参数**:`cloud_type_id`(int)。
|
||||
|
||||
**成功响应**:`200`
|
||||
|
||||
```json
|
||||
{
|
||||
"status_code": 200,
|
||||
"message": "云类型删除成功"
|
||||
}
|
||||
```
|
||||
|
||||
**错误**:参数无效返回 400;云类型不存在返回 404 `云类型不存在`;仍有云图使用该类型时返回 409 `云类型仍被云图使用,无法删除`;其他数据库异常返回 500。
|
||||
|
||||
### 8.9 `GET /admin/clouds` — 全状态云图列表
|
||||
|
||||
- **认证**:admin;可见任意状态与隐藏的云图
|
||||
|
||||
@@ -1167,7 +1237,7 @@ token 必须同时匹配规范化邮箱、HMAC 摘要、`password_reset` purpose
|
||||
| 400 | `status` 非法等参数错误 | zod 形状(2.1) | 检查参数 |
|
||||
| 500 | 服务端异常 | `服务器发生内部错误` | 稍后重试 |
|
||||
|
||||
### 8.7 `POST /admin/clouds/review` — 批量审核云图
|
||||
### 8.10 `POST /admin/clouds/review` — 批量审核云图
|
||||
|
||||
- **认证**:admin
|
||||
|
||||
@@ -1205,7 +1275,7 @@ token 必须同时匹配规范化邮箱、HMAC 摘要、`password_reset` purpose
|
||||
|
||||
**注意事项**:**部分成功语义**——消息中的 `N` 只统计状态**实际发生变化**的云图;已是目标状态的与不存在的一律静默跳过。审核只改变审核状态,不影响 `is_hidden` 与点赞数据。`pending ↔ approved/rejected`、`approved ↔ rejected` 均可。
|
||||
|
||||
### 8.8 `DELETE /admin/clouds/:cloud_id` — 删除云图
|
||||
### 8.11 `DELETE /admin/clouds/:cloud_id` — 删除云图
|
||||
|
||||
- **认证**:admin
|
||||
|
||||
|
||||
Reference in New Issue
Block a user