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:

  1. Membandingkan Daftar: Menganalisis penugasan saat ini vs daftar penugasan baru
  2. Menghitung Perubahan: Menentukan siapa yang harus dihapus, dipertahankan, dan ditambahkan
  3. Menghapus Pengguna: Menghapus penugasan pengguna yang tidak ada dalam daftar baru
  4. Menambahkan Pengguna: Menetapkan pengguna dalam daftar baru yang sebelumnya tidak ditugaskan
  5. Melacak Aktivitas: Membuat entri log aktivitas untuk setiap perubahan
  6. Mengirim Notifikasi: Memberitahukan pengguna yang baru ditugaskan
  7. Memicu Webhook: Mengaktifkan webhook penugasan yang ditambahkan/dihapus
  8. Memperbarui Grafik: Menandai grafik analitik untuk penyegaran
  9. 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 ke setTodoAssignees 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

Asisten AI

Respon dihasilkan menggunakan AI dan mungkin mengandung kesalahan.

Bagaimana saya bisa membantu Anda?

Tanyakan apa saja tentang Blue atau dokumentasi ini.

Masukkan untuk mengirim • Shift+Masukkan untuk baris baru • ⌘I untuk membuka