request

package
v0.0.0-...-1f3bb9f Latest Latest
Warning

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

Go to latest
Published: Jan 16, 2020 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const Completed string = "COMPLETED"
View Source
const Error string = "ERROR"
View Source
const Pending string = "PENDING"
View Source
const RequestVersion = 2 // distinguish older from newer requests

Variables

View Source
var CompletedUUIDStr = "6697be3b-bdfa-4438-9e2a-ea1511dd0e40"
View Source
var ErrInvalidTime = errors.New("Invalid time value cannot be parsed")

ErrInvalidTime - time provided does not parse

View Source
var ErrTimestampsKeyExists = errors.New("Timestamps key exists")

ErrTimestampsKeyExists - key provided already exists

View Source
var ErrorUUIDStr = "aa4073c3-5ae8-4344-9c29-41e15414e609"
View Source
var PendingUUIDStr = "da4ae569-484d-4f59-bc52-c876058252d8"

special UUIDs used for testing purposes

Functions

This section is empty.

Types

type GetStatusResponse

type GetStatusResponse struct {
	RequestID           uuid.UUID `json:"request_id"`
	CustomerID          int       `json:"customer_id"`
	MediaFileURI        string    `json:"media_uri"`
	AcceptedAt          string    `json:"accepted_at"`
	CompletedAt         string    `json:"completed_at,omitempty"`
	OriginalRequestID   uuid.UUID `json:"original_request_id"`
	OriginalAcceptedAt  string    `json:"original_accepted_at,omitempty"`
	OriginalCompletedAt string    `json:"original_completed_at,omitempty"`
	ETA                 string    `json:"eta,omitempty"`             // time.Time.String()
	Endpoint            string    `json:"endpoint,omitempty"`        // uri
	OriginalStatus      int       `json:"original_status,omitempty"` // http.Status*
}

GetStatusResponse holds selected fields of Result struct to include in HTTP response to GET /status/:uuid request

type GetTranscriptResponse

type GetTranscriptResponse struct {
	RequestID           uuid.UUID       `json:"request_id"`
	CustomerID          int             `json:"customer_id" validate:"required,gte=1,lt=10000000"`
	MediaFileURI        string          `json:"media_uri"`
	AcceptedAt          string          `json:"accepted_at"`
	CompletedAt         string          `json:"completed_at"`
	OriginalRequestID   uuid.UUID       `json:"original_request_id"`
	OriginalAcceptedAt  string          `json:"original_accepted_at,omitempty"`
	OriginalCompletedAt string          `json:"original_completed_at,omitempty"`
	Transcript          string          `json:"transcript"`
	Tags                map[string]Tags `json:"tags"`
}

GetTranscriptResponse holds selected fields of Result struct to include in HTTP response to GET /transcript/:uuid request

type PostResponse

type PostResponse struct {
	RequestID    uuid.UUID `json:"request_id"`
	CustomerID   int       `json:"customer_id"`
	MediaFileURI string    `json:"media_uri"`
	AcceptedAt   string    `json:"accepted_at"`
	Endpoint     string    `json:"endpoint,omitempty"` // uri
}

PostResponse holds seelcted fields of Result struct to include in HTTP response to initial POST request

type Request

type Request struct {
	Version           int               `json:"version" firestore:"request_version"`
	RequestID         uuid.UUID         `json:"request_id" firestore:"-"` // redundant when Firestore docID = RequestID
	CustomerID        int               `json:"customer_id" firestore:"customer_id" validate:"required,gte=1,lt=10000000"`
	MediaFileURI      string            `json:"media_uri" firestore:"media_uri" validate:"required,uri"`
	Status            string            `json:"status" firestore:"status"`                                       // one of "PENDING", "ERROR", "COMPLETED"
	OriginalStatus    int               `json:"original_status,omitempty" firestore:"original_status,omitempty"` // as reported throughout the pipeline
	AcceptedAt        string            `json:"accepted_at" firestore:"accepted_at"`
	CreatedAt         string            `json:"created_at,omitempty" firestore:"created_at,omitempty"`
	UpdatedAt         string            `json:"updated_at,omitempty" firestore:"updated_at,omitempty"`
	CompletedAt       string            `json:"completed_at,omitempty" firestore:"completed_at,omitempty"`
	WorkingTranscript string            `json:"working_transcript,omitempty" firestore:"working_transcript,omitempty"`
	FinalTranscript   string            `json:"final_transcript,omitempty" firestore:"final_transcript,omitempty"`
	MatchedTags       map[string]Tags   `json:"tags,omitempty" firestore:"tags,omitempty"`
	Timestamps        map[string]string `json:"timestamps" firestore:"timestamps"`
}

Request defines properties of an incoming transcription request to be added

func (*Request) AddTimestamps

func (req *Request) AddTimestamps(startKey, startTimestamp, endKey string) (time.Duration, error)

func (*Request) ReadRequest

func (req *Request) ReadRequest(w http.ResponseWriter, r *http.Request, p httprouter.Params, validate *validator.Validate) error

func (*Request) RequestDuration

func (req *Request) RequestDuration() (time.Duration, error)

func (*Request) ToMap

func (req *Request) ToMap() (map[string]interface{}, error)

type RequestRepository

type RequestRepository interface {
	Create(request *Request) error
	FindByID(reqID uuid.UUID) (*Request, error)
	Update(request *Request) error
}

type Tags

type Tags struct {
	Quote           string // Quote initially used as the key of the map
	InfoType        string // InfoType later used as the key of the map
	Likelihood      int
	BeginByteOffset int
	EndByteOffset   int
}

Jump to

Keyboard shortcuts

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