Ambil dan pantau aliran aktivitas proyek menggunakan Blue API.
Ambil Aktivitas Proyek
Kueri activityList
memberikan akses ke umpan aktivitas komprehensif untuk proyek dan perusahaan. Aktivitas secara otomatis dihasilkan ketika pengguna melakukan tindakan seperti membuat todo, komentar, atau melakukan perubahan proyek.
Contoh Dasar
query ProjectActivity {
activityList(
projectId: "your-project-id"
first: 20
orderBy: createdAt_DESC
) {
activities {
id
category
html
createdAt
createdBy {
id
name
email
}
project {
id
name
}
}
pageInfo {
hasNextPage
endCursor
}
totalCount
}
}
Contoh Lanjutan dengan Penyaringan
query FilteredActivity {
activityList(
companyId: "your-company-id"
categories: [CREATE_TODO, MARK_TODO_AS_COMPLETE, CREATE_COMMENT]
userIds: ["user1-id", "user2-id"]
startDate: "2024-01-01T00:00:00Z"
endDate: "2024-12-31T23:59:59Z"
first: 50
orderBy: createdAt_DESC
) {
activities {
id
uid
category
html
createdAt
updatedAt
createdBy {
id
name
email
}
affectedBy {
id
name
}
todo {
id
title
}
comment {
id
text
}
project {
id
name
slug
}
}
pageInfo {
hasNextPage
hasPreviousPage
startCursor
endCursor
}
totalCount
}
}
Parameter Input
Kueri activityList
Parameter | Tipe | Diperlukan | Deskripsi |
---|---|---|---|
companyId |
String | Tidak | Saring aktivitas berdasarkan ID perusahaan atau slug |
projectId |
String | Tidak | Saring aktivitas berdasarkan ID proyek atau slug |
userId |
String | Tidak | Saring aktivitas berdasarkan pengguna tertentu |
userIds |
[String!] | Tidak | Saring aktivitas berdasarkan beberapa pengguna |
tagIds |
[String!] | Tidak | Saring aktivitas berdasarkan tag todo |
categories |
[ActivityCategory!] | Tidak | Saring berdasarkan jenis aktivitas tertentu |
startDate |
DateTime | Tidak | Saring aktivitas dari tanggal ini |
endDate |
DateTime | Tidak | Saring aktivitas hingga tanggal ini |
skip |
Int | Tidak | Lewati sejumlah catatan ini (paginasi offset) |
first |
Int | Tidak | Kembalikan N catatan pertama (paginasi kursor) |
last |
Int | Tidak | Kembalikan N catatan terakhir (paginasi kursor) |
after |
String | Tidak | Kembalikan catatan setelah kursor ini |
before |
String | Tidak | Kembalikan catatan sebelum kursor ini |
orderBy |
ActivityOrderByInput | Tidak | Urutan hasil |
Nilai ActivityCategory
Sistem secara otomatis melacak berbagai jenis aktivitas:
Kategori | Deskripsi |
---|---|
CREATE_TODO |
Todo/tugas baru telah dibuat |
MARK_TODO_AS_COMPLETE |
Todo telah ditandai sebagai selesai |
CREATE_COMMENT |
Komentar telah ditambahkan |
CREATE_DISCUSSION |
Diskusi telah dimulai |
CREATE_STATUS_UPDATE |
Pembaruan status telah diposting |
CREATE_TODO_LIST |
Daftar todo baru telah dibuat |
MOVE_TODO |
Todo telah dipindahkan antar daftar |
COPY_TODO |
Todo telah disalin |
ADD_USER_TO_PROJECT |
Pengguna telah ditambahkan ke proyek |
REMOVE_USER_FROM_PROJECT |
Pengguna telah dihapus dari proyek |
ARCHIVE_PROJECT |
Proyek telah diarsipkan |
UNARCHIVE_PROJECT |
Proyek telah dibuka kembali |
CREATE_INVITATION |
Pengguna telah diundang |
ACCEPT_INVITATION |
Undangan telah diterima |
CREATE_CUSTOM_FIELD |
Bidang kustom telah dibuat |
RECEIVE_FORM |
Pengiriman formulir telah diterima |
Nilai ActivityOrderByInput
Nilai | Deskripsi |
---|---|
createdAt_DESC |
Terbaru terlebih dahulu (default) |
createdAt_ASC |
Terlama terlebih dahulu |
updatedAt_DESC |
Terbaru yang diperbarui terlebih dahulu |
updatedAt_ASC |
Terlama yang diperbarui terlebih dahulu |
category_ASC |
Alfabetis berdasarkan kategori |
category_DESC |
Alfabetis terbalik berdasarkan kategori |
Bidang Respons
Tipe Aktivitas
Bidang | Tipe | Deskripsi |
---|---|---|
id |
ID! | Identifikasi unik untuk aktivitas |
uid |
String! | Identifikasi unik alternatif |
category |
ActivityCategory! | Tipe aktivitas yang terjadi |
html |
String! | Deskripsi HTML kaya dari aktivitas |
createdAt |
DateTime! | Waktu ketika aktivitas terjadi |
updatedAt |
DateTime! | Waktu ketika aktivitas terakhir diperbarui |
createdBy |
User! | Pengguna yang melakukan tindakan |
affectedBy |
User | Pengguna yang terpengaruh oleh tindakan |
company |
Company | Perusahaan terkait |
project |
Project | Proyek terkait |
todo |
Todo | Todo terkait (jika ada) |
todoList |
TodoList | Daftar todo terkait (jika ada) |
comment |
Comment | Komentar terkait (jika ada) |
discussion |
Discussion | Diskusi terkait (jika ada) |
statusUpdate |
StatusUpdate | Pembaruan status terkait (jika ada) |
metadata |
String | Metadata aktivitas tambahan |
Respons ActivityList
Bidang | Tipe | Deskripsi |
---|---|---|
activities |
[Activity!]! | Array catatan aktivitas |
pageInfo |
PageInfo! | Informasi paginasi |
totalCount |
Int! | Total jumlah aktivitas yang cocok dengan filter |
Pembaruan Aktivitas Waktu Nyata
Langganan perubahan aktivitas menggunakan langganan subscribeToActivity
:
subscription ActivityUpdates($companyId: String!, $projectId: String) {
subscribeToActivity(companyId: $companyId, projectId: $projectId) {
mutation
node {
id
category
html
createdAt
createdBy {
id
name
email
}
project {
id
name
}
}
}
}
Parameter Langganan
Parameter | Tipe | Diperlukan | Deskripsi |
---|---|---|---|
companyId |
String | Tidak | Langganan untuk aktivitas di seluruh perusahaan |
projectId |
String | Tidak | Langganan untuk aktivitas proyek tertentu |
Langganan akan memberi tahu Anda tentang:
ACTIVITY_CREATED
- Aktivitas baruACTIVITY_UPDATED
- Aktivitas yang dimodifikasiACTIVITY_DELETED
- Aktivitas yang dihapus
Penyaringan dan Privasi
Penyaringan Otomatis
Umpan aktivitas secara otomatis menyaring hasil berdasarkan:
- Pengaturan Proyek: Hanya menampilkan aktivitas dari proyek dengan pelacakan aktivitas yang diaktifkan
- Izin Pengguna: Peran pengguna yang berbeda melihat jenis aktivitas yang berbeda
- Keanggotaan Proyek: Pengguna hanya melihat aktivitas dari proyek yang mereka akses
- Keanggotaan Perusahaan: Aktivitas dibatasi pada perusahaan pengguna
Pertimbangan Privasi
- Pengguna dengan peran CLIENT memiliki visibilitas terbatas terhadap aktivitas administratif tertentu
- Aktivitas menghormati pengaturan privasi tingkat proyek
- Operasi sensitif mungkin tidak menghasilkan aktivitas publik
Respons Kesalahan
Proyek/Perusahaan Tidak Valid
{
"errors": [{
"message": "Project not found",
"extensions": {
"code": "NOT_FOUND"
}
}]
}
Izin Ditolak
{
"errors": [{
"message": "You do not have permission to view activities for this project",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Rentang Tanggal Tidak Valid
{
"errors": [{
"message": "Start date must be before end date",
"extensions": {
"code": "BAD_USER_INPUT"
}
}]
}
Praktik Terbaik
- Gunakan Paginasi: Umpan aktivitas bisa besar, selalu gunakan parameter
first
- Saring berdasarkan Proyek: Umpan aktivitas di seluruh perusahaan bisa sangat banyak
- Pembaruan Waktu Nyata: Gunakan langganan untuk umpan aktivitas langsung
- Penyaringan Tanggal: Gunakan rentang tanggal untuk analisis aktivitas historis
- Penyaringan Kategori: Saring berdasarkan jenis aktivitas tertentu untuk umpan yang lebih terfokus
- Penyaringan Pengguna: Lacak aktivitas anggota tim tertentu menggunakan
userIds
Catatan Penting
- Aktivitas dihasilkan secara otomatis dan tidak dapat dibuat secara manual melalui API
- Teks aktivitas menggunakan format HTML untuk tampilan yang kaya
- Bidang
text
sudah tidak digunakan lagi demihtml
- Aktivitas disimpan secara permanen dan menyediakan jejak audit yang lengkap
- Langganan waktu nyata memerlukan otentikasi koneksi WebSocket