server

package
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Jul 27, 2023 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DecodeForecastRequest

func DecodeForecastRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp.Decoder) func(*http.Request) (any, error)

DecodeForecastRequest returns a decoder for requests sent to the Forecaster forecast endpoint.

func EncodeForecastError

func EncodeForecastError(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, formatter func(ctx context.Context, err error) goahttp.Statuser) func(context.Context, http.ResponseWriter, error) error

EncodeForecastError returns an encoder for errors returned by the forecast Forecaster endpoint.

func EncodeForecastResponse

func EncodeForecastResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, any) error

EncodeForecastResponse returns an encoder for responses returned by the Forecaster forecast endpoint.

func ForecastForecasterPath

func ForecastForecasterPath(state string, city string) string

ForecastForecasterPath returns the URL path to the Forecaster service forecast HTTP endpoint.

func Mount

func Mount(mux goahttp.Muxer, h *Server)

Mount configures the mux to serve the Forecaster endpoints.

func MountForecastHandler

func MountForecastHandler(mux goahttp.Muxer, h http.Handler)

MountForecastHandler configures the mux to serve the "Forecaster" service "forecast" endpoint.

func NewForecastHandler

func NewForecastHandler(
	endpoint goa.Endpoint,
	mux goahttp.Muxer,
	decoder func(*http.Request) goahttp.Decoder,
	encoder func(context.Context, http.ResponseWriter) goahttp.Encoder,
	errhandler func(context.Context, http.ResponseWriter, error),
	formatter func(ctx context.Context, err error) goahttp.Statuser,
) http.Handler

NewForecastHandler creates a HTTP handler which loads the HTTP request and calls the "Forecaster" service "forecast" endpoint.

func NewForecastPayload

func NewForecastPayload(state string, city string) *forecaster.ForecastPayload

NewForecastPayload builds a Forecaster service forecast endpoint payload.

Types

type ForecastResponseBody

type ForecastResponseBody struct {
	// Forecast location
	Location *LocationResponseBody `form:"location" json:"location" xml:"location"`
	// Weather forecast periods
	Periods []*PeriodResponseBody `form:"periods" json:"periods" xml:"periods"`
}

ForecastResponseBody is the type of the "Forecaster" service "forecast" endpoint HTTP response body.

func NewForecastResponseBody

func NewForecastResponseBody(res *forecaster.Forecast2) *ForecastResponseBody

NewForecastResponseBody builds the HTTP response body from the result of the "forecast" endpoint of the "Forecaster" service.

type ForecastTimeoutResponseBody

type ForecastTimeoutResponseBody struct {
	// Name is the name of this class of errors.
	Name string `form:"name" json:"name" xml:"name"`
	// ID is a unique identifier for this particular occurrence of the problem.
	ID string `form:"id" json:"id" xml:"id"`
	// Message is a human-readable explanation specific to this occurrence of the
	// problem.
	Message string `form:"message" json:"message" xml:"message"`
	// Is the error temporary?
	Temporary bool `form:"temporary" json:"temporary" xml:"temporary"`
	// Is the error a timeout?
	Timeout bool `form:"timeout" json:"timeout" xml:"timeout"`
	// Is the error a server-side fault?
	Fault bool `form:"fault" json:"fault" xml:"fault"`
}

ForecastTimeoutResponseBody is the type of the "Forecaster" service "forecast" endpoint HTTP response body for the "timeout" error.

func NewForecastTimeoutResponseBody

func NewForecastTimeoutResponseBody(res *goa.ServiceError) *ForecastTimeoutResponseBody

NewForecastTimeoutResponseBody builds the HTTP response body from the result of the "forecast" endpoint of the "Forecaster" service.

type LocationResponseBody

type LocationResponseBody struct {
	// Latitude
	Lat float64 `form:"lat" json:"lat" xml:"lat"`
	// Longitude
	Long float64 `form:"long" json:"long" xml:"long"`
	// City
	City string `form:"city" json:"city" xml:"city"`
	// State
	State string `form:"state" json:"state" xml:"state"`
}

LocationResponseBody is used to define fields on response body types.

type MountPoint

type MountPoint struct {
	// Method is the name of the service method served by the mounted HTTP handler.
	Method string
	// Verb is the HTTP method used to match requests to the mounted handler.
	Verb string
	// Pattern is the HTTP request path pattern used to match requests to the
	// mounted handler.
	Pattern string
}

MountPoint holds information about the mounted endpoints.

type PeriodResponseBody

type PeriodResponseBody struct {
	// Period name
	Name string `form:"name" json:"name" xml:"name"`
	// Start time
	StartTime string `form:"startTime" json:"startTime" xml:"startTime"`
	// End time
	EndTime string `form:"endTime" json:"endTime" xml:"endTime"`
	// Temperature
	Temperature int `form:"temperature" json:"temperature" xml:"temperature"`
	// Temperature unit
	TemperatureUnit string `form:"temperatureUnit" json:"temperatureUnit" xml:"temperatureUnit"`
	// Summary
	Summary string `form:"summary" json:"summary" xml:"summary"`
}

PeriodResponseBody is used to define fields on response body types.

type Server

type Server struct {
	Mounts   []*MountPoint
	Forecast http.Handler
}

Server lists the Forecaster service endpoint HTTP handlers.

func New

func New(
	e *forecaster.Endpoints,
	mux goahttp.Muxer,
	decoder func(*http.Request) goahttp.Decoder,
	encoder func(context.Context, http.ResponseWriter) goahttp.Encoder,
	errhandler func(context.Context, http.ResponseWriter, error),
	formatter func(ctx context.Context, err error) goahttp.Statuser,
) *Server

New instantiates HTTP handlers for all the Forecaster service endpoints using the provided encoder and decoder. The handlers are mounted on the given mux using the HTTP verb and path defined in the design. errhandler is called whenever a response fails to be encoded. formatter is used to format errors returned by the service methods prior to encoding. Both errhandler and formatter are optional and can be nil.

func (*Server) MethodNames

func (s *Server) MethodNames() []string

MethodNames returns the methods served.

func (*Server) Mount

func (s *Server) Mount(mux goahttp.Muxer)

Mount configures the mux to serve the Forecaster endpoints.

func (*Server) Service

func (s *Server) Service() string

Service returns the name of the service served.

func (*Server) Use

func (s *Server) Use(m func(http.Handler) http.Handler)

Use wraps the server handlers with the given middleware.

Jump to

Keyboard shortcuts

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