Folder API#

API quản lý thư mục lưu trữ media.

Base URL: https://app.socialking.vn/api/v1


1. Danh sách Folder & Media#

GET /folder/get-all #

Auth: Bearer Token (JWT)

Query Parameters:

ParamTypeDefaultMô tả
_sstring-Từ khóa tìm kiếm
_pagenumber1Trang
_limitnumber201-200 items/trang
_orderstringdescasc | desc
_sortstringupdatedAtname | date | createdAt | updatedAt | size | type
_trashbooleanfalseHiện items đã xóa
parentIdUUID-Filter theo folder cha
_depthnumber-Độ sâu đệ quy
_typestring-folder | media

Response (200):

{
  "success": true,
  "data": {
    "folders": [...],
    "media": [...],
    "total": 25,
    "page": 1
  }
}

2. Tạo Folder#

POST /folder/create #

Auth: Bearer Token (JWT)

Request Body:

{
  "name": "Ảnh sản phẩm",
  "description": "Folder chứa ảnh sản phẩm",
  "parentId": null
}
FieldTypeRequiredValidation
namestringYes1-255 ký tự
descriptionstringNoMô tả folder
parentIdUUIDNoNullable, ID folder cha

Response (201):

{
  "success": true,
  "data": {
    "id": "uuid-string",
    "name": "Ảnh sản phẩm",
    "description": "Folder chứa ảnh sản phẩm",
    "parentId": null,
    "createdAt": "2026-03-30T10:30:00Z"
  }
}

3. Đổi tên Folder#

PATCH /folder/rename/:id #

Auth: Bearer Token (JWT)

URL Params: id (UUID)

Request Body:

{
  "name": "Tên folder mới"
}
FieldTypeRequiredValidation
namestringYes1-255 ký tự

Response (200):

{
  "success": true,
  "data": { "id": "...", "name": "Tên folder mới" }
}

4. Xóa Folder (Soft Delete)#

DELETE /folder/delete/:id #

Auth: Bearer Token (JWT)

URL Params: id (UUID)

Response (200):

{
  "success": true,
  "message": "Folder soft deleted"
}

5. Xóa nhiều Folder#

POST /folder/delete-bulk #

Auth: Bearer Token (JWT)

Request Body:

{
  "ids": ["uuid-1", "uuid-2"]
}

6. Khôi phục Folder#

PATCH /folder/restore/:id #

Auth: Bearer Token (JWT)

URL Params: id (UUID)

Response (200):

{
  "success": true,
  "data": { "id": "...", "name": "...", "deletedAt": null }
}

7. Khôi phục nhiều Folder#

POST /folder/restore-bulk #

Auth: Bearer Token (JWT)

Request Body:

{
  "ids": ["uuid-1", "uuid-2"]
}