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

Tree @39b1e0c (Download .tar.gz)

endpoint.go @39b1e0craw · history · blame

package tracking

import (
	"golang.org/x/net/context"

	"github.com/go-kit/kit/endpoint"
)

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
	}
}