pkg/database/cosmosdb/zz_generated_trigger.go (116 lines of code) (raw):

// Code generated by github.com/bennerv/go-cosmosdb, DO NOT EDIT. package cosmosdb import ( "context" "net/http" ) // Trigger represents a trigger type Trigger struct { ID string `json:"id,omitempty"` ResourceID string `json:"_rid,omitempty"` Timestamp int `json:"_ts,omitempty"` Self string `json:"_self,omitempty"` ETag string `json:"_etag,omitempty"` Body string `json:"body,omitempty"` TriggerOperation TriggerOperation `json:"triggerOperation,omitempty"` TriggerType TriggerType `json:"triggerType,omitempty"` } // TriggerOperation represents a trigger operation type TriggerOperation string // TriggerOperation constants const ( TriggerOperationAll TriggerOperation = "All" TriggerOperationCreate TriggerOperation = "Create" TriggerOperationReplace TriggerOperation = "Replace" TriggerOperationDelete TriggerOperation = "Delete" ) // TriggerType represents a trigger type type TriggerType string // TriggerType constants const ( TriggerTypePre TriggerType = "Pre" TriggerTypePost TriggerType = "Post" ) // Triggers represents triggers type Triggers struct { Count int `json:"_count,omitempty"` ResourceID string `json:"_rid,omitempty"` Triggers []*Trigger `json:"Triggers,omitempty"` } type triggerClient struct { *databaseClient path string } // TriggerClient is a trigger client type TriggerClient interface { Create(context.Context, *Trigger) (*Trigger, error) List() TriggerIterator ListAll(context.Context) (*Triggers, error) Get(context.Context, string) (*Trigger, error) Delete(context.Context, *Trigger) error Replace(context.Context, *Trigger) (*Trigger, error) } type triggerListIterator struct { *triggerClient continuation string done bool } // TriggerIterator is a trigger iterator type TriggerIterator interface { Next(context.Context) (*Triggers, error) } // NewTriggerClient returns a new trigger client func NewTriggerClient(collc CollectionClient, collid string) TriggerClient { return &triggerClient{ databaseClient: collc.(*collectionClient).databaseClient, path: collc.(*collectionClient).path + "/colls/" + collid, } } func (c *triggerClient) all(ctx context.Context, i TriggerIterator) (*Triggers, error) { alltriggers := &Triggers{} for { triggers, err := i.Next(ctx) if err != nil { return nil, err } if triggers == nil { break } alltriggers.Count += triggers.Count alltriggers.ResourceID = triggers.ResourceID alltriggers.Triggers = append(alltriggers.Triggers, triggers.Triggers...) } return alltriggers, nil } func (c *triggerClient) Create(ctx context.Context, newtrigger *Trigger) (trigger *Trigger, err error) { err = c.do(ctx, http.MethodPost, c.path+"/triggers", "triggers", c.path, http.StatusCreated, &newtrigger, &trigger, nil) return } func (c *triggerClient) List() TriggerIterator { return &triggerListIterator{triggerClient: c} } func (c *triggerClient) ListAll(ctx context.Context) (*Triggers, error) { return c.all(ctx, c.List()) } func (c *triggerClient) Get(ctx context.Context, triggerid string) (trigger *Trigger, err error) { err = c.do(ctx, http.MethodGet, c.path+"/triggers/"+triggerid, "triggers", c.path+"/triggers/"+triggerid, http.StatusOK, nil, &trigger, nil) return } func (c *triggerClient) Delete(ctx context.Context, trigger *Trigger) error { if trigger.ETag == "" { return ErrETagRequired } headers := http.Header{} headers.Set("If-Match", trigger.ETag) return c.do(ctx, http.MethodDelete, c.path+"/triggers/"+trigger.ID, "triggers", c.path+"/triggers/"+trigger.ID, http.StatusNoContent, nil, nil, headers) } func (c *triggerClient) Replace(ctx context.Context, newtrigger *Trigger) (trigger *Trigger, err error) { err = c.do(ctx, http.MethodPost, c.path+"/triggers/"+newtrigger.ID, "triggers", c.path+"/triggers/"+newtrigger.ID, http.StatusCreated, &newtrigger, &trigger, nil) return } func (i *triggerListIterator) Next(ctx context.Context) (triggers *Triggers, err error) { if i.done { return } headers := http.Header{} if i.continuation != "" { headers.Set("X-Ms-Continuation", i.continuation) } err = i.do(ctx, http.MethodGet, i.path+"/triggers", "triggers", i.path, http.StatusOK, nil, &triggers, headers) if err != nil { return } i.continuation = headers.Get("X-Ms-Continuation") i.done = i.continuation == "" return }