sdk

package module
v0.0.0-...-b7735a6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 5, 2023 License: MIT Imports: 3 Imported by: 2

README

sdk

AFAIRE


Copyright (c) 2022-2023 Archivage Numérique

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ValidatePriority

func ValidatePriority(p *Priority)

Types

type JTCResult

type JTCResult struct {
	Job *Job `json:"job"`
}

func NewJTCResult

func NewJTCResult(job *Job) *JTCResult

type JTRResult

type JTRResult struct {
	Job *Job `json:"job"`
}

func NewJTRResult

func NewJTRResult(job *Job) *JTRResult

type JTUResult

type JTUResult struct {
	Previous *Job `json:"previous"`
	Next     *Job `json:"next"`
}

func NewJTUResult

func NewJTUResult(previous, next *Job) *JTUResult

type Job

type Job struct {
	*JobToCreate `json:"job_to_create"`
	ID           string         `json:"id"`
	Public       map[string]any `json:"public"`
	Private      map[string]any `json:"private"`
	CreatedAt    time.Time      `json:"created_at"`
	RefTime      time.Time      `json:"ref_time"`
	Status       Status         `json:"status"`
	Session      uint           `json:"session"`
	Attempt      uint           `json:"attempt"`
	LastError    string         `json:"last_error"`
	Errors       uint           `json:"errors"`
	FinishedAt   time.Time      `json:"finished_at"`
	Workflow     *JobWorkflow   `json:"workflow"`
}

func (*Job) AddPrivate

func (job *Job) AddPrivate(k string, v any)

func (*Job) AddPublic

func (job *Job) AddPublic(k string, v any)

func (*Job) MaybeWorkflowID

func (job *Job) MaybeWorkflowID() any

type JobToCreate

type JobToCreate struct {
	Namespace      string         `json:"namespace"` // required
	Type           string         `json:"type"`      // required
	ExternalID     string         `json:"external_id"`
	Name           string         `json:"name"`
	Version        uint           `json:"version"`
	Origin         string         `json:"origin"`
	Priority       Priority       `json:"priority"`
	Config         map[string]any `json:"config"`
	RunAfter       time.Time      `json:"run_after"`
	Exclusive      bool           `json:"exclusive"`
	MaxOccurrences uint           `json:"max_occurrences"`
	MaxAttempts    uint           `json:"max_attempts"`
	UniquenessKey  string         `json:"uniqueness_key"`
}

func NewJTC

func NewJTC(namespace, _type string) *JobToCreate

func (*JobToCreate) AddConfig

func (jtc *JobToCreate) AddConfig(k string, v any) *JobToCreate

func (*JobToCreate) SetExclusive

func (jtc *JobToCreate) SetExclusive(v bool) *JobToCreate

func (*JobToCreate) SetExternalID

func (jtc *JobToCreate) SetExternalID(v string) *JobToCreate

func (*JobToCreate) SetMaxAttempts

func (jtc *JobToCreate) SetMaxAttempts(v uint) *JobToCreate

func (*JobToCreate) SetMaxOccurrences

func (jtc *JobToCreate) SetMaxOccurrences(v uint) *JobToCreate

func (*JobToCreate) SetName

func (jtc *JobToCreate) SetName(v string) *JobToCreate

func (*JobToCreate) SetOrigin

func (jtc *JobToCreate) SetOrigin(v string) *JobToCreate

func (*JobToCreate) SetPriority

func (jtc *JobToCreate) SetPriority(v Priority) *JobToCreate

func (*JobToCreate) SetRunAfter

func (jtc *JobToCreate) SetRunAfter(v time.Time) *JobToCreate

func (*JobToCreate) SetUniquenessKey

func (jtc *JobToCreate) SetUniquenessKey(v string) *JobToCreate

func (*JobToCreate) SetVersion

func (jtc *JobToCreate) SetVersion(v uint) *JobToCreate

func (*JobToCreate) Validate

func (jtc *JobToCreate) Validate() error

type JobToUpdate

type JobToUpdate struct {
	ID       string         `json:"id"` // required
	Priority Priority       `json:"priority"`
	Public   map[string]any `json:"public"`
	Private  map[string]any `json:"private"`
	Status   Status         `json:"status"`
	NextStep string         `json:"next_step"`
	Value    string         `json:"value"`
	Duration time.Duration  `json:"duration"`
	ErrMsg   string         `json:"error"`
}

func NewJTU

func NewJTU(job *Job, status Status) *JobToUpdate

func (*JobToUpdate) AddPrivate

func (jtu *JobToUpdate) AddPrivate(k string, v any) *JobToUpdate

func (*JobToUpdate) AddPublic

func (jtu *JobToUpdate) AddPublic(k string, v any) *JobToUpdate

func (*JobToUpdate) Error

func (jtu *JobToUpdate) Error() string

func (*JobToUpdate) SetDuration

func (jtu *JobToUpdate) SetDuration(v time.Duration) *JobToUpdate

func (*JobToUpdate) SetError

func (jtu *JobToUpdate) SetError(err error) *JobToUpdate

func (*JobToUpdate) SetErrorFromMessage

func (jtu *JobToUpdate) SetErrorFromMessage(message string, kv ...any) *JobToUpdate

func (*JobToUpdate) SetErrorWithMessage

func (jtu *JobToUpdate) SetErrorWithMessage(err error, message string, kv ...any) *JobToUpdate

func (*JobToUpdate) SetNextStep

func (jtu *JobToUpdate) SetNextStep(v string) *JobToUpdate

func (*JobToUpdate) SetPriority

func (jtu *JobToUpdate) SetPriority(v Priority) *JobToUpdate

func (*JobToUpdate) SetStatus

func (jtu *JobToUpdate) SetStatus(v Status) *JobToUpdate

func (*JobToUpdate) SetValue

func (jtu *JobToUpdate) SetValue(v string) *JobToUpdate

func (*JobToUpdate) Validate

func (jtu *JobToUpdate) Validate() error

type JobWorkflow

type JobWorkflow struct {
	ID         string `json:"ID"`
	ExternalID string `json:"external_id"`
	Status     Status `json:"status"`
}

type Priority

type Priority uint
const (
	PriorityNone     Priority = 0
	PriorityLow      Priority = 20
	PriorityMedium   Priority = 50
	PriorityHigh     Priority = 80
	PriorityCritical Priority = 100
)

func ToPriority

func ToPriority(value string) (Priority, error)

type Result

type Result struct {
	Request string `json:"request"`
	Error   string `json:"error"`
}

func NewResult

func NewResult(request string, err error) *Result

type Status

type Status string
const (
	StatusTodo      Status = "todo"
	StatusRunning   Status = "running"
	StatusPending   Status = "pending"
	StatusSucceeded Status = "succeeded"
	StatusFailed    Status = "failed"
)

type Step

type Step struct {
	Namespace      string         `json:"namespace"` // required
	Type           string         `json:"type"`      // required
	Version        uint           `json:"version"`
	Config         map[string]any `json:"config"`
	Exclusive      bool           `json:"exclusive"`
	MaxOccurrences uint           `json:"max_occurrences"`
	MaxAttempts    uint           `json:"max_attempts"`
	ErrorHandler   bool           `json:"error_handler"`
	Next           map[string]any `json:"next"`
}

type WTCResult

type WTCResult struct {
	Workflow *Workflow `json:"workflow"`
	Job      *Job      `json:"job"`
}

func NewWTCResult

func NewWTCResult(wf *Workflow, job *Job) *WTCResult

type Workflow

type Workflow struct {
	*WorkflowToCreate `json:"workflow_to_create"`
	CreatedAt         time.Time `json:"created_at"`
	Status            Status    `json:"status"`
	FinishedAt        time.Time `json:"finished_at"`
}

type WorkflowToCreate

type WorkflowToCreate struct {
	ID          string           `json:"id"`
	FirstStep   string           `json:"first_step"` // required
	AllSteps    map[string]*Step `json:"all_steps"`  // required
	ExternalID  string           `json:"external_id"`
	Name        string           `json:"name"`
	Description string           `json:"description"`
	Origin      string           `json:"origin"`
	Priority    Priority         `json:"priority"`
	Data        map[string]any   `json:"data"`
}

func NewWTC

func NewWTC(firstStep string, allSteps map[string]*Step) *WorkflowToCreate

func (*WorkflowToCreate) AddData

func (wtc *WorkflowToCreate) AddData(k string, v any) *WorkflowToCreate

func (*WorkflowToCreate) SetData

func (wtc *WorkflowToCreate) SetData(v map[string]any) *WorkflowToCreate

func (*WorkflowToCreate) SetDescription

func (wtc *WorkflowToCreate) SetDescription(v string) *WorkflowToCreate

func (*WorkflowToCreate) SetExternalID

func (wtc *WorkflowToCreate) SetExternalID(v string) *WorkflowToCreate

func (*WorkflowToCreate) SetID

func (wtc *WorkflowToCreate) SetID(v string) *WorkflowToCreate

func (*WorkflowToCreate) SetName

func (wtc *WorkflowToCreate) SetName(v string) *WorkflowToCreate

func (*WorkflowToCreate) SetNamespace

func (wtc *WorkflowToCreate) SetNamespace(v string) *WorkflowToCreate

func (*WorkflowToCreate) SetOrigin

func (wtc *WorkflowToCreate) SetOrigin(v string) *WorkflowToCreate

func (*WorkflowToCreate) SetPriority

func (wtc *WorkflowToCreate) SetPriority(v Priority) *WorkflowToCreate

func (*WorkflowToCreate) Validate

func (wtc *WorkflowToCreate) Validate() error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL