1package tracking 2 3import ( 4 "context" 5 6 "github.com/go-kit/kit/endpoint" 7) 8 9type trackCargoRequest struct { 10 ID string 11} 12 13type trackCargoResponse struct { 14 Cargo *Cargo `json:"cargo,omitempty"` 15 Err error `json:"error,omitempty"` 16} 17 18func (r trackCargoResponse) error() error { return r.Err } 19 20func makeTrackCargoEndpoint(ts Service) endpoint.Endpoint { 21 return func(ctx context.Context, request interface{}) (interface{}, error) { 22 req := request.(trackCargoRequest) 23 c, err := ts.Track(req.ID) 24 return trackCargoResponse{Cargo: &c, Err: err}, nil 25 } 26} 27