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)
14
15// ModerationGetMessageContext_Output is the output of a chat.bsky.moderation.getMessageContext call.
16type ModerationGetMessageContext_Output struct {
17 Messages []*ModerationGetMessageContext_Output_Messages_Elem `json:"messages" cborgen:"messages"`
18}
19
20type ModerationGetMessageContext_Output_Messages_Elem struct {
21 ConvoDefs_MessageView *ConvoDefs_MessageView
22 ConvoDefs_DeletedMessageView *ConvoDefs_DeletedMessageView
23}
24
25func (t *ModerationGetMessageContext_Output_Messages_Elem) MarshalJSON() ([]byte, error) {
26 if t.ConvoDefs_MessageView != nil {
27 t.ConvoDefs_MessageView.LexiconTypeID = "chat.bsky.convo.defs#messageView"
28 return json.Marshal(t.ConvoDefs_MessageView)
29 }
30 if t.ConvoDefs_DeletedMessageView != nil {
31 t.ConvoDefs_DeletedMessageView.LexiconTypeID = "chat.bsky.convo.defs#deletedMessageView"
32 return json.Marshal(t.ConvoDefs_DeletedMessageView)
33 }
34 return nil, fmt.Errorf("cannot marshal empty enum")
35}
36func (t *ModerationGetMessageContext_Output_Messages_Elem) UnmarshalJSON(b []byte) error {
37 typ, err := util.TypeExtract(b)
38 if err != nil {
39 return err
40 }
41
42 switch typ {
43 case "chat.bsky.convo.defs#messageView":
44 t.ConvoDefs_MessageView = new(ConvoDefs_MessageView)
45 return json.Unmarshal(b, t.ConvoDefs_MessageView)
46 case "chat.bsky.convo.defs#deletedMessageView":
47 t.ConvoDefs_DeletedMessageView = new(ConvoDefs_DeletedMessageView)
48 return json.Unmarshal(b, t.ConvoDefs_DeletedMessageView)
49
50 default:
51 return nil
52 }
53}
54
55// ModerationGetMessageContext calls the XRPC method "chat.bsky.moderation.getMessageContext".
56//
57// convoId: Conversation that the message is from. NOTE: this field will eventually be required.
58func ModerationGetMessageContext(ctx context.Context, c util.LexClient, after int64, before int64, convoId string, messageId string) (*ModerationGetMessageContext_Output, error) {
59 var out ModerationGetMessageContext_Output
60
61 params := map[string]interface{}{}
62 if after != 0 {
63 params["after"] = after
64 }
65 if before != 0 {
66 params["before"] = before
67 }
68 if convoId != "" {
69 params["convoId"] = convoId
70 }
71 params["messageId"] = messageId
72 if err := c.LexDo(ctx, util.Query, "", "chat.bsky.moderation.getMessageContext", params, nil, &out); err != nil {
73 return nil, err
74 }
75
76 return &out, nil
77}