Menetapkan, menambahkan, atau menghapus pengguna dari rekaman menggunakan Blue API
Mengelola Penugasan Rekaman
Blue API menyediakan tiga operasi untuk mengelola penugasan rekaman: menetapkan penugasan (penggantian cerdas), menambahkan penugasan, dan menghapus penugasan. Operasi ini menangani pelacakan aktivitas, notifikasi, webhook, dan pembaruan waktu nyata secara otomatis.
Menetapkan Penugasan Rekaman (Penugasan Cerdas)
Mengganti semua penugasan saat ini dengan daftar baru. Sistem secara cerdas menghitung perubahan yang diperlukan, menghapus pengguna yang tidak ada dalam daftar baru dan menambahkan yang baru.
mutation SetRecordAssignees {
setTodoAssignees(input: {
todoId: "record_abc123"
assigneeIds: ["user_123", "user_456", "user_789"]
}) {
success
operationId
}
}
Menambahkan Penugasan Rekaman
Menambahkan penugasan baru tanpa menghapus yang sudah ada. Hanya pengguna yang belum ditugaskan yang akan ditambahkan.
mutation AddRecordAssignees {
addTodoAssignees(input: {
todoId: "record_abc123"
assigneeIds: ["user_999", "user_111"]
}) {
success
operationId
}
}
Menghapus Penugasan Rekaman
Menghapus penugasan tertentu dari sebuah rekaman.
mutation RemoveRecordAssignees {
removeTodoAssignees(input: {
todoId: "record_abc123"
assigneeIds: ["user_456"]
}) {
success
operationId
}
}
Parameter Input
SetTodoAssigneesInput
Parameter | Tipe | Diperlukan | Deskripsi |
---|---|---|---|
todoId |
String! | ✅ Ya | ID rekaman untuk menetapkan pengguna |
assigneeIds |
[String!]! | ✅ Ya | Array ID pengguna untuk ditugaskan (mengganti semua penugasan saat ini) |
AddTodoAssigneesInput
Parameter | Tipe | Diperlukan | Deskripsi |
---|---|---|---|
todoId |
String! | ✅ Ya | ID rekaman untuk menetapkan pengguna |
assigneeIds |
[String!]! | ✅ Ya | Array ID pengguna untuk ditambahkan sebagai penugasan |
RemoveTodoAssigneesInput
Parameter | Tipe | Diperlukan | Deskripsi |
---|---|---|---|
todoId |
String! | ✅ Ya | ID rekaman untuk menghapus penugasan |
assigneeIds |
[String!]! | ✅ Ya | Array ID pengguna untuk dihapus dari penugasan |
Bidang Respons
Bidang | Tipe | Deskripsi |
---|---|---|
success |
Boolean! | Apakah operasi selesai dengan sukses |
operationId |
String | Pengidentifikasi unik untuk melacak operasi ini |
Izin yang Diperlukan
Menetapkan/Menghapus Penugasan
Peran | Dapat Menetapkan/Menghapus |
---|---|
OWNER |
✅ Ya |
ADMIN |
✅ Ya |
MEMBER |
✅ Ya |
CLIENT |
✅ Ya |
VIEW_ONLY |
❌ Tidak |
COMMENT_ONLY |
❌ Tidak |
Menambahkan Penugasan
Peran | Dapat Menambahkan Penugasan |
---|---|
OWNER |
✅ Ya |
ADMIN |
✅ Ya |
MEMBER |
✅ Ya |
CLIENT |
✅ Ya |
VIEW_ONLY |
✅ Ya |
COMMENT_ONLY |
✅ Ya |
Respons Kesalahan
Rekaman Tidak Ditemukan
{
"errors": [{
"message": "Todo was not found.",
"extensions": {
"code": "TODO_NOT_FOUND"
}
}]
}
Izin Tidak Cukup
{
"errors": [{
"message": "You don't have permission to modify this record",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Input Tidak Valid
{
"errors": [{
"message": "Variable '$input' got invalid value; Expected non-nullable type 'String!' not to be null.",
"extensions": {
"code": "GRAPHQL_VALIDATION_FAILED"
}
}]
}
Perbandingan Operasi
Fitur | Menetapkan Penugasan | Menambahkan Penugasan | Menghapus Penugasan |
---|---|---|---|
Logic | Smart replacement | Incremental addition | Selective removal |
Activity Tracking | ✅ Ya | ❌ Tidak | ❌ Tidak |
Notifikasi | ✅ Ya | ❌ Tidak | ❌ Tidak |
Webhooks | ✅ Ya | ❌ Tidak | ❌ Tidak |
Automations | ✅ Ya | ❌ Tidak | ❌ Tidak |
Permission Level | Stricter | More permissive | Stricter |
Logika Bisnis
Penugasan Cerdas (setTodoAssignees)
Ketika Anda menggunakan setTodoAssignees
, sistem:
- Membandingkan Daftar: Menganalisis penugasan saat ini vs daftar penugasan baru
- Menghitung Perubahan: Menentukan siapa yang harus dihapus, dipertahankan, dan ditambahkan
- Menghapus Pengguna: Menghapus penugasan pengguna yang tidak ada dalam daftar baru
- Menambahkan Pengguna: Menetapkan pengguna dalam daftar baru yang sebelumnya tidak ditugaskan
- Melacak Aktivitas: Membuat entri log aktivitas untuk setiap perubahan
- Mengirim Notifikasi: Memberitahukan pengguna yang baru ditugaskan
- Memicu Webhook: Mengaktifkan webhook penugasan yang ditambahkan/dihapus
- Memperbarui Grafik: Menandai grafik analitik untuk penyegaran
- Pembaruan Waktu Nyata: Menerbitkan pembaruan kepada klien yang terhubung
Operasi Sederhana (tambah/hapus)
Operasi addTodoAssignees
dan removeTodoAssignees
menyediakan fungsionalitas dasar tanpa fitur pelacakan dan notifikasi yang komprehensif dari setTodoAssignees
.
Catatan Penting
- Keanggotaan Proyek: Penugasan harus menjadi anggota proyek yang berisi rekaman
- Tidak Ada Batas Penugasan: Tidak ada jumlah maksimum penugasan per rekaman
- Penugasan Diri: Pengguna dapat menetapkan diri mereka sendiri jika mereka memiliki izin yang tepat
- Array Kosong: Memberikan array
assigneeIds
yang kosong kesetTodoAssignees
menghapus semua penugasan - Pencegahan Duplikasi: Sistem secara otomatis mencegah penugasan duplikat
- Efisiensi Basis Data: Menggunakan tabel penghubung (
TodoUser
) untuk hubungan banyak-ke-banyak yang dapat diskalakan - Pembaruan Waktu Nyata: Semua klien yang terhubung menerima pembaruan segera ketika penugasan berubah
Mendapatkan Penugasan yang Tersedia
Untuk mendapatkan daftar pengguna yang dapat ditugaskan ke rekaman dalam proyek:
query GetAssignees {
assignees(projectId: "project_abc123") {
id
name
email
avatar
}
}
Kueri ini mengembalikan semua anggota proyek yang dapat ditugaskan ke rekaman.
Operasi Terkait
- Daftar Rekaman - Dapatkan rekaman dengan penugasan saat ini
- Perbarui Rekaman - Modifikasi properti rekaman lainnya
- Tambahkan Komentar - Tambahkan komentar ke rekaman yang ditugaskan