booking

package
v0.0.0-...-d0adc60 Latest Latest
Warning

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

Go to latest
Published: Mar 14, 2024 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrInvalidArgument = errors.New("invalid argument")

Functions

func MakeHandler

func MakeHandler(bs Service, logger kitlog.Logger) http.Handler

Types

type Cargo

type Cargo struct {
	ArrivalDeadline time.Time   `json:"arrival_deadline"`
	Destination     string      `json:"destination"`
	Legs            []cargo.Leg `json:"legs,omitempty"`
	Misrouted       bool        `json:"misrouted"`
	Origin          string      `json:"origin"`
	Routed          bool        `json:"routed"`
	TrackingID      string      `json:"tracking_id"`
}

type Location

type Location struct {
	UNLocode string `json:"locode"`
	Name     string `json:"name"`
}

type Service

type Service interface {
	BookNewCargo(origin location.UNLocode, destination location.UNLocode, deadline time.Time) (cargo.TrackingID, error)
	LoadCargo(id cargo.TrackingID) (Cargo, error)
	RequestPossibleRoutesForCargo(id cargo.TrackingID) []cargo.Itinerary
	AssignCargoToRoute(id cargo.TrackingID, itinerary cargo.Itinerary) error
	ChangeDestination(id cargo.TrackingID, destination location.UNLocode) error
	Cargos() []Cargo
	Locations() []Location
}

func NewInstrumentingService

func NewInstrumentingService(counter metrics.Counter, latency metrics.Histogram, s Service) Service

func NewLoggingService

func NewLoggingService(logger log.Logger, s Service) Service

func NewService

func NewService(cargos cargo.Repository, locations location.Repository, events cargo.HandlingEventRepository, rs routing.Service) Service

Jump to

Keyboard shortcuts

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