A fork of https://github.com/teal-fm/piper
1// Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT.
2
3package bsky
4
5// schema: app.bsky.labeler.getServices
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// LabelerGetServices_Output is the output of a app.bsky.labeler.getServices call.
17type LabelerGetServices_Output struct {
18 Views []*LabelerGetServices_Output_Views_Elem `json:"views" cborgen:"views"`
19}
20
21type LabelerGetServices_Output_Views_Elem struct {
22 LabelerDefs_LabelerView *LabelerDefs_LabelerView
23 LabelerDefs_LabelerViewDetailed *LabelerDefs_LabelerViewDetailed
24}
25
26func (t *LabelerGetServices_Output_Views_Elem) MarshalJSON() ([]byte, error) {
27 if t.LabelerDefs_LabelerView != nil {
28 t.LabelerDefs_LabelerView.LexiconTypeID = "app.bsky.labeler.defs#labelerView"
29 return json.Marshal(t.LabelerDefs_LabelerView)
30 }
31 if t.LabelerDefs_LabelerViewDetailed != nil {
32 t.LabelerDefs_LabelerViewDetailed.LexiconTypeID = "app.bsky.labeler.defs#labelerViewDetailed"
33 return json.Marshal(t.LabelerDefs_LabelerViewDetailed)
34 }
35 return nil, fmt.Errorf("cannot marshal empty enum")
36}
37func (t *LabelerGetServices_Output_Views_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 "app.bsky.labeler.defs#labelerView":
45 t.LabelerDefs_LabelerView = new(LabelerDefs_LabelerView)
46 return json.Unmarshal(b, t.LabelerDefs_LabelerView)
47 case "app.bsky.labeler.defs#labelerViewDetailed":
48 t.LabelerDefs_LabelerViewDetailed = new(LabelerDefs_LabelerViewDetailed)
49 return json.Unmarshal(b, t.LabelerDefs_LabelerViewDetailed)
50
51 default:
52 return nil
53 }
54}
55
56// LabelerGetServices calls the XRPC method "app.bsky.labeler.getServices".
57func LabelerGetServices(ctx context.Context, c *xrpc.Client, detailed bool, dids []string) (*LabelerGetServices_Output, error) {
58 var out LabelerGetServices_Output
59
60 params := map[string]interface{}{
61 "detailed": detailed,
62 "dids": dids,
63 }
64 if err := c.Do(ctx, xrpc.Query, "", "app.bsky.labeler.getServices", params, nil, &out); err != nil {
65 return nil, err
66 }
67
68 return &out, nil
69}