Skip to content

angee.messaging.schema

GraphQL schema for the messaging addon — threads, messages, and the inbox.

Messages arrive through channel sync and the manager-owned ingest path; the console browses and moderates them through Hasura resources. Parts, participants, edges, and reactions remain nested read projections reached through their message/thread owners.

ChannelType

python
@strawberry_django.type(Channel)
class ChannelType(IntegrationLabelMixin, AngeeNode)

GraphQL projection of a connected message channel (e.g. an email account).

FragmentType

python
@strawberry_django.type(Fragment)
class FragmentType(AngeeNode)

GraphQL projection of a content-addressed text fragment.

PartType

python
@strawberry_django.type(Part)
class PartType(AngeeNode)

GraphQL projection of one message body part.

MessageSubtypeType

python
@strawberry_django.type(MessageSubtype)
class MessageSubtypeType(AngeeNode)

GraphQL projection of an Odoo-style message subtype.

TrackingValueType

python
@strawberry_django.type(TrackingValue)
class TrackingValueType(AngeeNode)

GraphQL projection of one tracked field change on a chatter message.

ParticipantType

python
@strawberry_django.type(Participant)
class ParticipantType(AngeeNode)

GraphQL projection of a thread/message participant.

MessageReactionGroupType

python
@strawberry.type
class MessageReactionGroupType()

Odoo-style grouped reactions for one message.

MessageType

python
@strawberry_django.type(Message)
class MessageType(AngeeNode)

GraphQL projection of a message.

reaction_groups

python
@strawberry.field
def reaction_groups(info: strawberry.Info) -> list[MessageReactionGroupType]

Return reactions grouped by content, with current-user state.

starred

python
@strawberry.field
def starred(info: strawberry.Info) -> bool

Return whether the current user has starred this message.

needaction

python
@strawberry.field
def needaction(info: strawberry.Info) -> bool

Return whether the current user has unread action on this message.

can_edit

python
@strawberry_django.field(prefetch_related=["tracking_values"])
def can_edit(info: strawberry.Info) -> bool

Return whether the current actor may edit this message's body.

Delegates to the message's own :meth:Message.can_edit owner (post access plus the mail edit rule), passing the record post access resolved and memoized once per thread by :func:_message_post_access. The tracking_values prefetch hint lets the optimizer batch the edit-rule predicate instead of an exists() per row.

can_delete

python
@strawberry.field
def can_delete(info: strawberry.Info) -> bool

Return whether the current actor may delete this message.

Delegates to :meth:Message.can_delete (the record thread's post access; deletion carries no mail-kind restriction of its own), passing the post access memoized once per thread by :func:_message_post_access.

ThreadType

python
@strawberry_django.type(Thread)
class ThreadType(AngeeNode)

GraphQL projection of a thread.

ThreadAttachmentType

python
@strawberry_django.type(ThreadAttachment)
class ThreadAttachmentType(AngeeNode)

GraphQL projection of a model-record thread attachment.

ThreadFollowerType

python
@strawberry_django.type(ThreadFollower)
class ThreadFollowerType(AngeeNode)

GraphQL projection of a user following a record chatter thread.

ThreadActivityType

python
@strawberry_django.type(ThreadActivity)
class ThreadActivityType(AngeeNode)

GraphQL projection of a scheduled record chatter activity.

state

python
@strawberry.field
def state() -> str

Return the Odoo-style activity state.

ThreadNotificationType

python
@strawberry_django.type(ThreadNotification)
class ThreadNotificationType(AngeeNode)

GraphQL projection of a per-recipient chatter notification.

MessageEdgeType

python
@strawberry_django.type(MessageEdge)
class MessageEdgeType(AngeeNode)

GraphQL projection of a cross-message edge.

ReactionType

python
@strawberry_django.type(Reaction)
class ReactionType(AngeeNode)

GraphQL projection of an attributed reaction.

MessageStarType

python
@strawberry_django.type(MessageStar)
class MessageStarType(AngeeNode)

GraphQL projection of a user's starred message marker.

MessageSubtypeOptionType

python
@strawberry.type
class MessageSubtypeOptionType()

Follower-selectable chatter subtype option.

SuggestedRecipientType

python
@strawberry.type
class SuggestedRecipientType()

One Odoo-style suggested recipient for a record chatter composer.

RecordReferenceInput

python
@strawberry.input
class RecordReferenceInput()

Record identity for a model-backed chatter thread.

RecordThreadInput

python
@strawberry.input
class RecordThreadInput(RecordReferenceInput)

Fields accepted when fetching a model-backed chatter thread.

RecordMessagePostInput

python
@strawberry.input
class RecordMessagePostInput(RecordReferenceInput)

Fields accepted when posting an internal chatter message.

RecordMessageUpdateInput

python
@strawberry.input
class RecordMessageUpdateInput(RecordReferenceInput)

Fields accepted when editing an existing chatter comment.

RecordMessageDeleteInput

python
@strawberry.input
class RecordMessageDeleteInput(RecordReferenceInput)

Fields accepted when deleting an existing chatter message.

RecordMessageReactionInput

python
@strawberry.input
class RecordMessageReactionInput(RecordReferenceInput)

Fields accepted when reacting to a chatter message.

RecordMessageStarInput

python
@strawberry.input
class RecordMessageStarInput(RecordReferenceInput)

Fields accepted when starring or unstarring a chatter message.

RecordMessageDoneInput

python
@strawberry.input
class RecordMessageDoneInput(RecordReferenceInput)

Fields accepted when marking a chatter message done for the user.

RecordFollowInput

python
@strawberry.input
class RecordFollowInput(RecordReferenceInput)

Fields accepted when following or unfollowing a record chatter thread.

RecordActivityScheduleInput

python
@strawberry.input
class RecordActivityScheduleInput(RecordReferenceInput)

Fields accepted when scheduling a record activity.

RecordActivityFeedbackInput

python
@strawberry.input
class RecordActivityFeedbackInput()

Fields accepted when completing a record activity.

RecordActivityCancelInput

python
@strawberry.input
class RecordActivityCancelInput()

Fields accepted when canceling a record activity.

RecordThreadPayload

python
@strawberry.type
class RecordThreadPayload()

A record chatter thread, or the error that prevented resolving it.

RecordMessagePostPayload

python
@strawberry.type
class RecordMessagePostPayload()

A posted chatter message, or the error that prevented posting it.

RecordMessageUpdatePayload

python
@strawberry.type
class RecordMessageUpdatePayload()

An updated chatter message, or the error that prevented editing it.

RecordMessageDeletePayload

python
@strawberry.type
class RecordMessageDeletePayload()

A deleted chatter message id plus refreshed thread state, or an error.

RecordMessageReactionPayload

python
@strawberry.type
class RecordMessageReactionPayload()

A reacted chatter message, or the error that prevented reacting.

RecordMessageStarPayload

python
@strawberry.type
class RecordMessageStarPayload()

A starred/unstarred chatter message result, or the error that prevented it.

RecordMessageDonePayload

python
@strawberry.type
class RecordMessageDonePayload()

A message marked done for the user, or the error that prevented it.

RecordFollowPayload

python
@strawberry.type
class RecordFollowPayload()

A record follower update result, or the error that prevented it.

RecordActivityPayload

python
@strawberry.type
class RecordActivityPayload()

A record activity update result, or the error that prevented it.

MessagingQuery

python
@strawberry.type
class MessagingQuery()

Record-backed chatter queries.

record_thread

python
@strawberry.field(name="record_thread")
def record_thread(info: strawberry.Info,
                  input: RecordThreadInput) -> RecordThreadPayload

Return the existing chatter thread attached to a model record.

MessagingMutation

python
@strawberry.type
class MessagingMutation()

Record-backed chatter mutations.

post_record_message

python
@strawberry.mutation(name="post_record_message")
def post_record_message(
        info: strawberry.Info,
        input: RecordMessagePostInput) -> RecordMessagePostPayload

Post an internal comment to the record's chatter thread.

update_record_message

python
@strawberry.mutation(name="update_record_message")
def update_record_message(
        info: strawberry.Info,
        input: RecordMessageUpdateInput) -> RecordMessageUpdatePayload

Update an existing internal comment in the record's chatter thread.

delete_record_message

python
@strawberry.mutation(name="delete_record_message")
def delete_record_message(
        info: strawberry.Info,
        input: RecordMessageDeleteInput) -> RecordMessageDeletePayload

Delete a message from the record's chatter thread.

set_record_message_reaction

python
@strawberry.mutation(name="set_record_message_reaction")
def set_record_message_reaction(
        info: strawberry.Info,
        input: RecordMessageReactionInput) -> RecordMessageReactionPayload

Add, remove, or toggle the current user's reaction on a chatter message.

set_record_message_starred

python
@strawberry.mutation(name="set_record_message_starred")
def set_record_message_starred(
        info: strawberry.Info,
        input: RecordMessageStarInput) -> RecordMessageStarPayload

Set or toggle the current user's star on a chatter message.

mark_record_message_done

python
@strawberry.mutation(name="mark_record_message_done")
def mark_record_message_done(
        info: strawberry.Info,
        input: RecordMessageDoneInput) -> RecordMessageDonePayload

Mark one chatter message done for the current user.

set_record_following

python
@strawberry.mutation(name="set_record_following")
def set_record_following(info: strawberry.Info,
                         input: RecordFollowInput) -> RecordFollowPayload

Follow or unfollow a record's chatter thread as the current user.

schedule_record_activity

python
@strawberry.mutation(name="schedule_record_activity")
def schedule_record_activity(
        info: strawberry.Info,
        input: RecordActivityScheduleInput) -> RecordActivityPayload

Schedule an activity on the record's chatter thread.

complete_record_activity

python
@strawberry.mutation(name="complete_record_activity")
def complete_record_activity(
        info: strawberry.Info,
        input: RecordActivityFeedbackInput) -> RecordActivityPayload

Complete a scheduled record activity and log its feedback.

cancel_record_activity

python
@strawberry.mutation(name="cancel_record_activity")
def cancel_record_activity(
        info: strawberry.Info,
        input: RecordActivityCancelInput) -> RecordActivityPayload

Cancel a scheduled record activity.

mark_record_thread_read

python
@strawberry.mutation(name="mark_record_thread_read")
def mark_record_thread_read(
        info: strawberry.Info,
        input: RecordReferenceInput) -> RecordThreadPayload

Mark the current user's notifications on a record thread as read.

Released under the AGPL-3.0 License.