Codebase list golang-github-go-kit-kit / debian/0.6.0-3 examples / shipping / tracking / endpoint.go
debian/0.6.0-3

Tree @debian/0.6.0-3 (Download .tar.gz)

endpoint.go @debian/0.6.0-3raw · history · blame

package tracking

import (
	"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
	}
}