models

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Jun 26, 2020 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DownloadHrefFmt     = "http://%s/images/%s/%s/%s"
	DownloadPrivateHost = "download.ons.gov.uk"
	DownloadPublicHost  = "static.ons.gov.uk"
)

DownloadHrefFmt is the string formatter to generate href values for Image Download variants

View Source
const MaxFilenameLen = 40

MaxFilenameLen is the maximum number of characters allowed for Image filenames

Variables

This section is empty.

Functions

This section is empty.

Types

type Download

type Download struct {
	Size             *int       `bson:"size,omitempty"               json:"size,omitempty"`
	Type             string     `bson:"type,omitempty"               json:"type,omitempty"`
	Width            *int       `bson:"width,omitempty"              json:"width,omitempty"`
	Height           *int       `bson:"height,omitempty"             json:"height,omitempty"`
	Public           bool       `json:"public,omitempty"`
	Href             string     `json:"href,omitempty"`
	Private          string     `bson:"private,omitempty"            json:"private,omitempty"`
	State            string     `bson:"state,omitempty"              json:"state,omitempty"`
	Error            string     `bson:"error,omitempty"              json:"error,omitempty"`
	ImportStarted    *time.Time `bson:"import_started,omitempty"     json:"import_started,omitempty"`
	ImportCompleted  *time.Time `bson:"import_completed,omitempty"   json:"import_completed,omitempty"`
	PublishStarted   *time.Time `bson:"publish_started,omitempty"    json:"publish_started,omitempty"`
	PublishCompleted *time.Time `bson:"publish_completed,omitempty"  json:"publish_completed,omitempty"`
}

Download represents a download variant model

func (*Download) Refresh added in v0.5.0

func (d *Download) Refresh(imageID, variantName, fileName string)

Refresh regenerates the values for public and href according to the download state and the provided values for variant name, image name and image extension

func (*Download) StateTransitionAllowed added in v0.5.0

func (d *Download) StateTransitionAllowed(target string) bool

StateTransitionAllowed checks if the download variant can transition from its current state to the provided target state

func (*Download) Validate added in v0.5.0

func (d *Download) Validate() error

Validate checks that an image struct complies with the state name constraint, if provided.

type DownloadState added in v0.5.0

type DownloadState int

DownloadState - iota enum of possible image states

const (
	StateDownloadPending DownloadState = iota
	StateDownloadImporting
	StateDownloadImported
	StateDownloadPublished
	StateDownloadCompleted
	StateDownloadFailed
)

Possible values for a State of a download variant. It can only be one of the following:

func ParseDownloadState added in v0.5.0

func ParseDownloadState(downloadStateStr string) (DownloadState, error)

ParseDownloadState returns a download state from its string representation

func (DownloadState) String added in v0.5.0

func (ds DownloadState) String() string

String returns the string representation of a downlad state

func (DownloadState) TransitionAllowed added in v0.5.0

func (ds DownloadState) TransitionAllowed(target DownloadState) bool

TransitionAllowed returns true only if the transition from the current state and the provided target DownloadState is allowed

type Image

type Image struct {
	ID           string              `bson:"_id,omitempty"           json:"id,omitempty"`
	CollectionID string              `bson:"collection_id,omitempty" json:"collection_id,omitempty"`
	State        string              `bson:"state,omitempty"         json:"state,omitempty"`
	Filename     string              `bson:"filename,omitempty"      json:"filename,omitempty"`
	License      *License            `bson:"license,omitempty"       json:"license,omitempty"`
	Upload       *Upload             `bson:"upload,omitempty"        json:"upload,omitempty"`
	Type         string              `bson:"type,omitempty"          json:"type,omitempty"`
	Downloads    map[string]Download `bson:"downloads,omitempty"     json:"downloads,omitempty"`
}

Image represents an image metadata model as it is stored in mongoDB and json representation for API

func (*Image) Refresh added in v0.5.0

func (i *Image) Refresh()

Refresh regenerates all the values for the available download variants for this image

func (*Image) StateTransitionAllowed

func (i *Image) StateTransitionAllowed(target string) bool

StateTransitionAllowed checks if the image can transition from its current state to the provided target state

func (*Image) Validate

func (i *Image) Validate() error

Validate checks that an image struct complies with the filename and state constraints, if provided.

type Images

type Images struct {
	Count      int     `bson:"count,omitempty"        json:"count"`
	Offset     int     `bson:"offset_index,omitempty" json:"offset_index"`
	Limit      int     `bson:"limit,omitempty"        json:"limit"`
	Items      []Image `bson:"items,omitempty"        json:"items"`
	TotalCount int     `bson:"total_count,omitempty"  json:"total_count"`
}

Images represents an array of images model as it is stored in mongoDB and json representation for API

func (*Images) Refresh added in v0.5.0

func (ii *Images) Refresh()

Refresh refreshes all the images in this images struct

type License

type License struct {
	Title string `bson:"title,omitempty"            json:"title,omitempty"`
	Href  string `bson:"href,omitempty"             json:"href,omitempty"`
}

License represents a license model

type State

type State int

State - iota enum of possible image states

const (
	StateCreated State = iota
	StateUploaded
	StateImporting
	StateImported
	StatePublished
	StateCompleted
	StateDeleted
	StateFailedImport
	StateFailedPublish
)

Possible values for a State of an image. It can only be one of the following:

func ParseState

func ParseState(stateStr string) (State, error)

ParseState returns a state from its string representation

func (State) String

func (s State) String() string

String returns the string representation of a state

func (State) TransitionAllowed

func (s State) TransitionAllowed(target State) bool

TransitionAllowed returns true only if the transition from the current state and the provided targetState is allowed

type Upload

type Upload struct {
	Path string `bson:"path,omitempty"              json:"path,omitempty"`
}

Upload represents an upload model

Jump to

Keyboard shortcuts

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