Codebase list golang-github-go-kit-kit / e0f3def examples / shipping / tracking / endpoint.go
e0f3def

Tree @e0f3def (Download .tar.gz)

endpoint.go @e0f3defraw · history · blame

package tracking

import (
	"github.com/go-kit/kit/endpoint"
	"golang.org/x/net/context"
)

type trackCargoRequest struct {
	ID string
}

type trackCargoResponse struct {
	Cargo *Cargo `json:"cargo,omitempty"`
	Err   error  `json:"error,omitempty"`
}

func (r trackCargoResponse) error() error { return r.Err }

func makeTrackCargoEndpoint(ts Service) endpoint.Endpoint {
	return func(ctx context.Context, request interface{}) (interface{}, error) {
		req := request.(trackCargoRequest)
		c, err := ts.Track(req.ID)
		return trackCargoResponse{Cargo: &c, Err: err}, nil
	}
}