Rolebase Développeurs
Référence API

thread_activity

Représente une activité ou une interaction au sein d'une discussion. Les activités comprennent des messages, des sondages et des références à d'autres entités, constituant le contenu conversationnel d'une discussion.

Champs

ChampTypeDescription
iduuidIdentifiant unique de l’activité (généré automatiquement)
threadIduuidRéférence à la discussion parente
userIduuidRéférence à l’utilisateur qui a créé l’activité
typeThread_Activity_Type_EnumType d’activité : Message, Poll, Thread, Meeting, Task, Decision, MeetingNote ou ChangeStatus
dataJSONContenu de l’activité (le format dépend du type)
createdAttimestamptzDate de création de l’activité (par défaut : horodatage actuel)
refThreadIduuidRéférence optionnelle à une autre discussion
refMeetingIduuidRéférence optionnelle à une réunion
refTaskIduuidRéférence optionnelle à une tâche
refDecisionIduuidRéférence optionnelle à une décision

Types d’activité

Le champ type accepte les valeurs d’énumération suivantes :

  • Message — Message texte ou contenu riche
  • Poll — Sondage pour recueillir des avis
  • Thread — Référence à une autre discussion
  • Meeting — Référence à une réunion
  • Task — Référence à une tâche
  • Decision — Référence à une décision
  • MeetingNote — Note créée pendant une réunion
  • ChangeStatus — Changement de statut de discussion

Relations

Relations objet

  • thread — La discussion à laquelle cette activité appartient
  • user — L’utilisateur qui a créé l’activité
  • refThread — Discussion référencée (optionnel)
  • refMeeting — Réunion référencée (optionnel)
  • refTask — Tâche référencée (optionnel)
  • refDecision — Décision référencée (optionnel)

Relations tableau

Exemples de requêtes

Lister les activités d’une discussion

query GetThreadActivities($threadId: uuid!) {
  thread_activity(
    where: { threadId: { _eq: $threadId } }
    order_by: { createdAt: asc }
  ) {
    id
    threadId
    userId
    createdAt
    type
    data
    reactions {
      id
      shortcode
      userId
    }
    refThread {
      id
      title
    }
    refMeeting {
      id
      title
    }
    refTask {
      id
      title
    }
    refDecision {
      id
      title
    }
  }
}

Exemples de mutations

Créer une activité de discussion

mutation CreateThreadActivity {
  insert_thread_activity_one(
    object: {
      threadId: "123e4567-e89b-12d3-a456-426614174000"
      userId: "123e4567-e89b-12d3-a456-426614174001"
      type: Message
      data: { message: "Hello team!" }
    }
  ) {
    id
    type
    data
    createdAt
  }
}

Mettre à jour une activité de discussion

mutation UpdateThreadActivity {
  update_thread_activity_by_pk(
    pk_columns: { id: "123e4567-e89b-12d3-a456-426614174002" }
    _set: { data: { message: "Updated message" } }
  ) {
    id
    data
    createdAt
  }
}

Permissions

L’accès aux activités de discussion est contrôlé via les permissions Hasura et la sécurité au niveau des lignes :

  • Consultation — Les utilisateurs peuvent consulter les activités des discussions auxquelles ils ont accès
  • Création — Les utilisateurs peuvent créer de nouvelles activités dans les discussions auxquelles ils ont accès
  • Modification — Les utilisateurs peuvent modifier leurs propres activités. Les activités de type MeetingNote peuvent aussi être modifiées par les utilisateurs ayant accès à la discussion
  • Suppression — Les utilisateurs peuvent supprimer leurs propres activités. Les administrateurs et propriétaires de l’organisation peuvent supprimer toute activité

La structure du champ data varie en fonction du type d’activité. Les activités sont ordonnées chronologiquement au sein d’une discussion et supportent les réactions avec agrégation. Les champs de référence permettent aux activités de se lier à d’autres entités pour le contexte.