~james/core

core/api/org_tangled/eventnotifyEvent.go -rw-r--r-- 2.5 KiB
452f17b7 — james chore(import): snapshot james.dad.town/core at f70c71c7696a 15 hours ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT.

package org_tangled

// schema: org.tangled.event.notifyEvent

import (
	"context"
	"encoding/json"
	"fmt"

	"github.com/bluesky-social/indigo/lex/util"
)

const (
	EventNotifyEventNSID = "org.tangled.event.notifyEvent"
)

// EventNotifyEvent_CiOutput is a "ciOutput" in the org.tangled.event.notifyEvent schema.
type EventNotifyEvent_CiOutput struct {
	// message: Text returned by the server for this push, like how to follow a started CI.
	Message *string `json:"message,omitempty" cborgen:"message,omitempty"`
	// pipelines: IDs of the scheduled pipelines
	Pipelines []string `json:"pipelines,omitempty" cborgen:"pipelines,omitempty"`
}

// EventNotifyEvent_Input is the input argument to a org.tangled.event.notifyEvent call.
type EventNotifyEvent_Input struct {
	// event: Tangled event object
	Event *EventNotifyEvent_Input_Event `json:"event" cborgen:"event"`
	// repo: Repository DID
	Repo string `json:"repo" cborgen:"repo"`
}

// Tangled event object
type EventNotifyEvent_Input_Event struct {
	CiTriggerManual *CiTriggerManual
	EventPush       *EventPush
}

func (t *EventNotifyEvent_Input_Event) MarshalJSON() ([]byte, error) {
	if t.CiTriggerManual != nil {
		t.CiTriggerManual.LexiconTypeID = "org.tangled.ci.trigger.manual"
		return json.Marshal(t.CiTriggerManual)
	}
	if t.EventPush != nil {
		t.EventPush.LexiconTypeID = "org.tangled.event.push"
		return json.Marshal(t.EventPush)
	}
	return nil, fmt.Errorf("cannot marshal empty enum")
}
func (t *EventNotifyEvent_Input_Event) UnmarshalJSON(b []byte) error {
	typ, err := util.TypeExtract(b)
	if err != nil {
		return err
	}

	switch typ {
	case "org.tangled.ci.trigger.manual":
		t.CiTriggerManual = new(CiTriggerManual)
		return json.Unmarshal(b, t.CiTriggerManual)
	case "org.tangled.event.push":
		t.EventPush = new(EventPush)
		return json.Unmarshal(b, t.EventPush)

	default:
		return nil
	}
}

// EventNotifyEvent_Output is the output of a org.tangled.event.notifyEvent call.
type EventNotifyEvent_Output struct {
	Ci *EventNotifyEvent_CiOutput `json:"ci,omitempty" cborgen:"ci,omitempty"`
}

// EventNotifyEvent calls the XRPC method "org.tangled.event.notifyEvent".
func EventNotifyEvent(ctx context.Context, c util.LexClient, input *EventNotifyEvent_Input) (*EventNotifyEvent_Output, error) {
	var out EventNotifyEvent_Output
	if err := c.LexDo(ctx, util.Procedure, "application/json", "org.tangled.event.notifyEvent", nil, input, &out); err != nil {
		return nil, err
	}

	return &out, nil
}