Base URL
https://tasks.duhocsunny.com/api
Trang này: https://tasks.duhocsunny.com/api-docs
Header / key bắt buộc
App gửi các key này trên mọi request.
| Key | Giá trị |
|---|---|
Accept
bắt buộc
|
application/json
Luôn gửi trên mọi request. |
Content-Type
bắt buộc
|
application/json
Bắt buộc khi gửi body JSON (login, gửi tin chat). |
Authorization
|
Bearer {token}
Bắt buộc với mọi API trừ login và docs. {token} lấy từ POST /api/login. |
Authorization: Bearer 1|xxxxxxxx — token lấy từ POST /api/login.
/api/login
không cần đăng nhập
Đăng nhập
URL đầy đủ: https://tasks.duhocsunny.com/api/login
Header: Accept, Content-Type
Body JSON
-
emailstring bắt buộcEmail hoặc tên đăng nhập (phần trước @). Cũng nhận key login.
-
loginstringTuỳ chọn, dùng thay email.
-
passwordstring bắt buộcMật khẩu tài khoản.
-
device_namestringTên máy, ví dụ android-pixel. Mặc định: app.
Key trả về
-
okbooleantrue khi đăng nhập thành công.
-
tokenstringAccess token. Lưu lại và gửi ở header Authorization.
-
token_typestringLuôn là Bearer.
-
token_keystringTên header: Authorization.
-
memberobjectĐầy đủ thông tin thành viên. Xem bảng member.
Ví dụ body
{
"email": "admin@example.com",
"password": "********",
"device_name": "android-app"
}
/api/me
cần token
Thông tin thành viên đang đăng nhập
URL đầy đủ: https://tasks.duhocsunny.com/api/me
Header: Accept, Authorization
Key trả về
-
okbooleantrue.
-
memberobjectĐầy đủ thông tin thành viên.
/api/logout
cần token
Đăng xuất
URL đầy đủ: https://tasks.duhocsunny.com/api/logout
Header: Accept, Authorization
Key trả về
-
okbooleantrue khi đã huỷ token hiện tại.
/api/docs
không cần đăng nhập
Danh mục API (JSON)
URL đầy đủ: https://tasks.duhocsunny.com/api/docs
Header: Accept
Key trả về
-
base_urlstringURL gốc API.
-
headersarrayCác header/key bắt buộc.
-
member_keysarrayToàn bộ key trong object member.
-
task_keysarrayToàn bộ key trong object task.
-
notification_keysarrayToàn bộ key trong object notification.
-
endpointsarrayDanh sách API.
/api/cong-viec
cần token
Danh sách công việc
URL đầy đủ: https://tasks.duhocsunny.com/api/cong-viec
Header: Accept, Authorization
Query
-
qstringTìm theo tên việc, người phụ trách, người thực hiện.
-
statusstringopen (mặc định), todo, processing, pending_review, completed, archived.
-
today0|11 = việc hôm nay / quá hạn (giống trang Việc trên PWA).
-
overdue0|11 = chỉ việc hoặc việc nhỏ đã quá hạn.
-
priority0|11 = chỉ việc ưu tiên.
-
fromdateHạn từ ngày, Y-m-d.
-
todateHạn đến ngày, Y-m-d.
-
pageintegerTrang, mặc định 1. Mỗi trang 20 việc.
Key trả về
-
okbooleantrue.
-
pageintegerTrang hiện tại.
-
per_pageintegerLuôn 20.
-
totalintegerTổng số việc khớp bộ lọc.
-
tasksarrayDanh sách object task. Xem bảng task.
/api/cong-viec/{id}
cần token
Chi tiết công việc
URL đầy đủ: https://tasks.duhocsunny.com/api/cong-viec/{id}
Header: Accept, Authorization
Key trả về
-
okbooleantrue.
-
taskobjectĐầy đủ việc lớn, việc nhỏ, tài liệu. 404 nếu không được xem.
/api/chat
cần token
Danh sách hội thoại chat
URL đầy đủ: https://tasks.duhocsunny.com/api/chat
Header: Accept, Authorization
Query
-
seenstring|objectJSON map { "task_id": last_message_id } để tính tin chưa đọc, ví dụ {"15":80}.
Key trả về
-
okbooleantrue.
-
unread_totalintegerTổng tin chưa đọc theo seen.
-
conversationsarrayTối đa 80 hội thoại. Chat theo công việc, không phải 1-1.
-
conversations[].idintegerMã công việc / hội thoại.
-
conversations[].namestringTên công việc.
-
conversations[].last_idintegerMã tin cuối. 0 nếu chưa có tin.
-
conversations[].last_previewstringXem trước tin cuối.
-
conversations[].last_authorstring|nullNgười gửi tin cuối.
-
conversations[].last_timestring|nullGiờ tin cuối, d/m H:i.
-
conversations[].unread_countintegerTin chưa đọc của hội thoại này.
-
conversations[].deadlinestring|nullHạn việc, d/m/Y H:i.
-
conversations[].overduebooleanViệc đã quá hạn.
/api/chat/tim
cần token
Tìm tin nhắn
URL đầy đủ: https://tasks.duhocsunny.com/api/chat/tim
Header: Accept, Authorization
Query
-
qstring bắt buộcTừ khóa, tối thiểu 2 ký tự.
Key trả về
-
okbooleantrue.
-
hitsarrayTối đa 40 kết quả trong việc bạn được xem.
-
hits[].idintegerMã tin nhắn.
-
hits[].task_idintegerMã công việc.
-
hits[].task_namestringTên công việc.
-
hits[].previewstringĐoạn chứa từ khóa.
/api/chat/moi
cần token
Tin mới từ người khác
URL đầy đủ: https://tasks.duhocsunny.com/api/chat/moi
Header: Accept, Authorization
Query
-
afterintegerChỉ lấy tin có id lớn hơn. after=0 trả về latest_id, messages rỗng.
Key trả về
-
okbooleantrue.
-
latest_idintegerId tin mới nhất bạn được xem.
-
messagesarrayTin của người khác sau mốc after. Cùng cấu trúc tin ở /tin.
/api/chat/{id}
cần token
Tóm tắt công việc trong chat
URL đầy đủ: https://tasks.duhocsunny.com/api/chat/{id}
Header: Accept, Authorization
Key trả về
-
okbooleantrue.
-
taskobjectTóm tắt: hạn, việc nhỏ, tài liệu. 404 nếu không được xem.
-
task.idintegerMã công việc.
-
task.namestringTên công việc.
-
task.statusstringNhãn trạng thái tiếng Việt.
-
task.deadlinestring|nullHạn, d/m/Y H:i.
-
task.itemsarrayViệc nhỏ kèm tài liệu.
-
task.documentsarrayTài liệu của việc lớn.
/api/chat/{id}/tin
cần token
Danh sách tin nhắn
URL đầy đủ: https://tasks.duhocsunny.com/api/chat/{id}/tin
Header: Accept, Authorization
Query
-
afterintegerafter=0 hoặc bỏ trống = toàn bộ. Số > 0 = tin mới hơn id đó.
Key trả về
-
okbooleantrue.
-
latest_idintegerId tin mới nhất trong việc.
-
countintegerTổng số tin.
-
messagesarrayDanh sách tin. Có html (nội dung đã render), plain, preview.
-
messages[].idintegerMã tin.
-
messages[].minebooleantrue nếu mình gửi.
-
messages[].authorstringTên người gửi.
-
messages[].plainstringNội dung chữ thường.
-
messages[].htmlstringNội dung có link và @mention.
-
messages[].can_deletebooleanĐược xóa (tin của mình hoặc admin).
-
messages[].pinnedbooleanĐang ghim.
-
pinsarrayCác tin đang ghim.
-
mention_usersarrayDanh sách người có thể @ trong việc này.
/api/chat/{id}/tin
cần token
Gửi tin nhắn
URL đầy đủ: https://tasks.duhocsunny.com/api/chat/{id}/tin
Header: Accept, Content-Type, Authorization
Body JSON
-
bodystring bắt buộcNội dung, 2–4000 ký tự. Có thể @tên để nhắc.
-
reply_to_idintegerId tin gốc nếu trả lời.
Key trả về
-
okbooleantrue khi gửi xong.
-
messagestringThông báo: Đã gửi trao đổi.
-
commentobjectTin vừa gửi, cùng cấu trúc messages[].
Ví dụ body
{
"body": "Đã nhận việc, báo cáo cuối ngày.",
"reply_to_id": 80
}
/api/chat/{id}/tin/{comment_id}/ghim
cần token
Ghim / bỏ ghim tin
URL đầy đủ: https://tasks.duhocsunny.com/api/chat/{id}/tin/{comment_id}/ghim
Header: Accept, Authorization
Key trả về
-
okbooleantrue.
-
messagestringĐã ghim / đã bỏ ghim.
-
pinnedbooleanTrạng thái ghim sau khi gọi API.
/api/chat/{id}/tin/{comment_id}
cần token
Xóa tin nhắn
URL đầy đủ: https://tasks.duhocsunny.com/api/chat/{id}/tin/{comment_id}
Header: Accept, Authorization
Key trả về
-
okbooleantrue khi đã xóa. 403 nếu không phải tin của mình (trừ admin).
/api/thong-bao
cần token
Danh sách thông báo của tôi
URL đầy đủ: https://tasks.duhocsunny.com/api/thong-bao
Header: Accept, Authorization
Query
-
unread0|11 = chỉ thông báo chưa đọc.
-
pageintegerTrang, mặc định 1. Mỗi trang 20.
Key trả về
-
okbooleantrue.
-
unreadintegerSố thông báo chưa đọc. Dùng làm badge.
-
latest_atstring|nullThời điểm thông báo mới nhất, ISO 8601. Lưu để poll /moi.
-
pageintegerTrang hiện tại.
-
per_pageintegerLuôn 20.
-
totalintegerTổng số thông báo khớp bộ lọc.
-
notificationsarrayDanh sách, mới nhất trước. Xem bảng notification.
/api/thong-bao/moi
cần token
Poll thông báo mới (cho push app)
URL đầy đủ: https://tasks.duhocsunny.com/api/thong-bao/moi
Header: Accept, Authorization
Query
-
afterstringafter=0 lần đầu: chỉ lấy latest_at, notifications rỗng. Sau đó gửi latest_at (ISO) hoặc id thông báo đã thấy. App poll 15–30 giây.
Key trả về
-
okbooleantrue.
-
unreadintegerSố chưa đọc.
-
latest_atstring|nullMốc mới nhất. App lưu lại cho lần poll sau.
-
notificationsarrayChỉ tin mới hơn after, tối đa 30, cũ trước. Mỗi phần tử: title + message để hiện push local.
/api/thong-bao/{id}/doc
cần token
Đánh dấu một thông báo đã đọc
URL đầy đủ: https://tasks.duhocsunny.com/api/thong-bao/{id}/doc
Header: Accept, Authorization
Key trả về
-
okbooleantrue. 404 nếu không phải thông báo của bạn.
-
unreadintegerSố chưa đọc còn lại.
/api/thong-bao/doc-tat-ca
cần token
Đánh dấu tất cả đã đọc
URL đầy đủ: https://tasks.duhocsunny.com/api/thong-bao/doc-tat-ca
Header: Accept, Authorization
Key trả về
-
okbooleantrue.
-
unreadintegerLuôn 0.
Toàn bộ key trong notification
Object này trả về ở /api/thong-bao và /api/thong-bao/moi. App poll /moi rồi hiện push local bằng title + message.
| Key | Kiểu | Ý nghĩa |
|---|---|---|
id |
string | UUID thông báo. App khử trùng khi hiện push. |
title |
string | Tiêu đề push, ví dụ Có công việc mới được giao. |
message |
string | Nội dung push. |
event |
string|null | Mã sự kiện: task_created, task_comment, item_submitted, item_completed… |
task_id |
integer|null | Mã việc để mở /api/cong-viec/{id} hoặc /app/cong-viec/{id}. |
report_code |
string|null | Mã báo cáo phòng, nếu thông báo về báo cáo. |
read |
boolean | Đã đọc hay chưa. |
time |
string|null | Giờ hiển thị, d/m/Y H:i. |
created_at |
string|null | ISO 8601. Dùng làm after khi poll. |
Toàn bộ key trong task
Object này trả về ở /api/cong-viec và /api/cong-viec/{id}.
| Key | Kiểu | Ý nghĩa |
|---|---|---|
id |
integer | Mã công việc. |
name |
string | Tên việc lớn. |
status |
string | todo, processing, pending_review, completed. |
status_label |
string | Nhãn tiếng Việt. |
priority |
boolean | Việc ưu tiên. |
overdue |
boolean | Việc lớn quá hạn. |
deadline |
string|null | Hạn, Y-m-d H:i:s. |
deadline_label |
string|null | Hạn, d/m/Y H:i. |
content |
string | Nội dung chữ thường. |
content_html |
string | Nội dung HTML. |
creator |
object|null | Người giao: id, name. |
responsible |
object|null | Người phụ trách: id, name. |
assignees |
array | Người thực hiện: [{id, name}]. |
documents |
array | Tài liệu việc lớn: id, name, url, icon. |
items |
array | Danh sách việc nhỏ. |
items[].id |
integer | Mã việc nhỏ. |
items[].name |
string | Tên việc nhỏ. |
items[].status |
string | todo, processing, pending_review, completed. |
items[].status_label |
string | Nhãn tiếng Việt. |
items[].overdue |
boolean | Việc nhỏ quá hạn. |
items[].deadline |
string|null | Hạn việc nhỏ. |
items[].content |
string | Nội dung việc nhỏ. |
items[].report |
string | Báo cáo hoàn thành (chữ thường). |
items[].report_html |
string | Báo cáo HTML. |
items[].responsible |
object|null | Người phụ trách việc nhỏ. |
items[].assignees |
array | Người làm việc nhỏ. |
items[].documents |
array | Tài liệu gắn việc nhỏ. |
items_count |
integer | Số việc nhỏ. |
overdue_items_count |
integer | Số việc nhỏ quá hạn. |
Toàn bộ key trong member
Object này trả về ở /api/login và /api/me.
| Key | Kiểu | Ý nghĩa |
|---|---|---|
id |
integer | Mã thành viên. |
name |
string | Họ và tên. |
email |
string | Email đăng nhập. |
phone |
string|null | Số điện thoại. |
is_admin |
boolean | Quản trị hệ thống. |
is_active |
boolean | Tài khoản còn hoạt động. |
is_ceo |
boolean | Chức vụ CEO. |
is_department_manager |
boolean | Trưởng/phó phòng. |
position |
string|null | Mã chức vụ: ceo, truong_phong, pho_phong, nhan_vien. |
position_label |
string | Tên chức vụ tiếng Việt. |
extra_position |
string|null | Ghi thêm chức vụ. |
department_id |
integer|null | Mã phòng ban. |
department |
object|null | Phòng ban: id, name, description. |
department.id |
integer | Mã phòng. |
department.name |
string | Tên phòng. |
department.description |
string|null | Mô tả phòng. |
reporting_departments |
array | Phòng được giao viết báo cáo. |
reporting_departments[].id |
integer | Mã phòng báo cáo. |
reporting_departments[].name |
string | Tên phòng báo cáo. |
telegram_connected |
boolean | Đã kết nối Telegram. |
telegram_connected_at |
string|null | Thời điểm kết nối, ISO 8601. |
must_change_password |
boolean | Bắt buộc đổi mật khẩu. |
uses_admin_ui |
boolean | Dùng giao diện admin/CEO. |
home_path |
string | Đường dẫn trang chủ web. |
permissions |
object | Quyền trên app. |
permissions.can_create_tasks |
boolean | Được giao việc. |
permissions.can_create_members |
boolean | Được thêm thành viên. |
permissions.can_view_company_wide |
boolean | Xem toàn công ty. |
permissions.can_manage_departments |
boolean | Sửa phòng ban. |
permissions.can_view_departments |
boolean | Xem danh sách phòng. |
permissions.can_view_staff_work_report |
boolean | Xem báo cáo nhân sự / cân việc. |
permissions.can_view_report_config |
boolean | Xem cấu hình báo cáo phòng. |
permissions.is_report_writer |
boolean | Được viết báo cáo phòng. |
email_verified_at |
string|null | Thời điểm xác thực email. |
created_at |
string|null | Ngày tạo tài khoản. |
updated_at |
string|null | Ngày cập nhật. |