1// Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT.
2
3package chat
4
5// schema: chat.bsky.moderation.getMessageContext
6
7import (
8 "context"
9 "encoding/json"
10 "fmt"
11
12 "github.com/bluesky-social/indigo/lex/util"
13 "github.com/bluesky-social/indigo/xrpc"
14)
15
16// ModerationGetMessageContext_Output is the output of a chat.bsky.moderation.getMessageContext call.
17type ModerationGetMessageContext_Output struct {
18 Messages []*ModerationGetMessageContext_Output_Messages_Elem `json:"messages" cborgen:"messages"`
19}
20
21type ModerationGetMessageContext_Output_Messages_Elem struct {
22 ConvoDefs_MessageView *ConvoDefs_MessageView
23 ConvoDefs_DeletedMessageView *ConvoDefs_DeletedMessageView
24}
25
26func (t *ModerationGetMessageContext_Output_Messages_Elem) MarshalJSON() ([]byte, error) {
27 if t.ConvoDefs_MessageView != nil {
28 t.ConvoDefs_MessageView.LexiconTypeID = "chat.bsky.convo.defs#messageView"
29 return json.Marshal(t.ConvoDefs_MessageView)
30 }
31 if t.ConvoDefs_DeletedMessageView != nil {
32 t.ConvoDefs_DeletedMessageView.LexiconTypeID = "chat.bsky.convo.defs#deletedMessageView"
33 return json.Marshal(t.ConvoDefs_DeletedMessageView)
34 }
35 return nil, fmt.Errorf("cannot marshal empty enum")
36}
37func (t *ModerationGetMessageContext_Output_Messages_Elem) UnmarshalJSON(b []byte) error {
38 typ, err := util.TypeExtract(b)
39 if err != nil {
40 return err
41 }
42
43 switch typ {
44 case "chat.bsky.convo.defs#messageView":
45 t.ConvoDefs_MessageView = new(ConvoDefs_MessageView)
46 return json.Unmarshal(b, t.ConvoDefs_MessageView)
47 case "chat.bsky.convo.defs#deletedMessageView":
48 t.ConvoDefs_DeletedMessageView = new(ConvoDefs_DeletedMessageView)
49 return json.Unmarshal(b, t.ConvoDefs_DeletedMessageView)
50
51 default:
52 return nil
53 }
54}
55
56// ModerationGetMessageContext calls the XRPC method "chat.bsky.moderation.getMessageContext".
57//
58// convoId: Conversation that the message is from. NOTE: this field will eventually be required.
59func ModerationGetMessageContext(ctx context.Context, c *xrpc.Client, after int64, before int64, convoId string, messageId string) (*ModerationGetMessageContext_Output, error) {
60 var out ModerationGetMessageContext_Output
61
62 params := map[string]interface{}{
63 "after": after,
64 "before": before,
65 "convoId": convoId,
66 "messageId": messageId,
67 }
68 if err := c.Do(ctx, xrpc.Query, "", "chat.bsky.moderation.getMessageContext", params, nil, &out); err != nil {
69 return nil, err
70 }
71
72 return &out, nil
73}