User API#

API quản lý user và phân quyền.

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


1. Danh sách User#

GET /user/get-all #

Auth: Bearer Token (JWT)

Query Parameters:

ParamTypeDefaultMô tả
_pagenumber1Trang
_limitnumber20Items/trang
_orderstringdescasc | desc
_searchstring-Tìm kiếm
_trashbooleanfalseHiện user đã xóa
statusstring-Filter theo status

Response (200):

{
  "success": true,
  "data": {
    "users": [
      {
        "id": "uuid-string",
        "name": "Nguyen Van A",
        "email": "user@example.com",
        "status": "active",
        "image": "https://cdn.socialking.vn/avatars/user.png",
        "createdAt": "2026-03-30T10:30:00Z"
      }
    ],
    "total": 100,
    "page": 1
  }
}

2. Chi tiết User#

GET /user/get-by-id/:id #

Auth: Bearer Token (JWT)

URL Params: id (UUID)

Response (200):

{
  "success": true,
  "data": {
    "id": "uuid-string",
    "name": "Nguyen Van A",
    "email": "user@example.com",
    "status": "active",
    "image": null,
    "roles": [
      { "id": "uuid", "name": "User", "key": "user", "level": 1 }
    ],
    "createdAt": "2026-03-30T10:30:00Z"
  }
}

3. Tạo User#

POST /user/create #

Auth: Bearer Token (JWT)

Request Body:

{
  "name": "Nguyen Van B",
  "email": "newuser@example.com",
  "password": "Password@123",
  "status": "active",
  "roleIds": []
}
FieldTypeRequiredValidation
namestringYes2-100 ký tự
emailstringYesEmail hợp lệ, lowercase, unique
passwordstringNo6-100 ký tự
imagestringNoURL hợp lệ, nullable
statusstringNoDefault pending
roleIdsUUID[]NoMax 10 roles

Response (201):

{
  "success": true,
  "data": {
    "id": "uuid-string",
    "name": "Nguyen Van B",
    "email": "newuser@example.com",
    "status": "active",
    "roles": []
  }
}

4. Cập nhật User#

PUT /user/update/:id #

Auth: Bearer Token (JWT)

URL Params: id (UUID)

Request Body: Các fields giống tạo, tất cả optional.


5. Khôi phục User#

PUT /user/restore/:id #

Auth: Bearer Token (JWT)

URL Params: id (UUID)


6. Khôi phục nhiều User#

PUT /user/restore-bulk #

Auth: Bearer Token (JWT)


7. Xóa User (Soft Delete)#

DELETE /user/delete/:id #

Auth: Bearer Token (JWT)


8. Xóa nhiều User (Soft Delete)#

DELETE /user/delete-bulk #

Auth: Bearer Token (JWT)

Request Body:

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

9. Xóa vĩnh viễn User#

DELETE /user/force-delete/:id #

Auth: Bearer Token (JWT)

Rate Limit: 5 req/sec


10. Xóa vĩnh viễn nhiều User#

DELETE /user/force-delete-bulk #

Auth: Bearer Token (JWT)

Rate Limit: 5 req/sec

Request Body:

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

11. Permissions của tôi#

GET /user/me/permissions #

Auth: Bearer Token (JWT)

Response (200):

{
  "success": true,
  "data": {
    "permissions": [
      {
        "key": "manager_user:read",
        "name": "Xem user",
        "description": "Quyền xem danh sách user"
      }
    ]
  }
}