OSDN Git Service

new repo
[bytom/vapor.git] / vendor / github.com / go-kit / kit / examples / shipping / handling / endpoint.go
1 package handling
2
3 import (
4         "context"
5         "time"
6
7         "github.com/go-kit/kit/endpoint"
8
9         "github.com/go-kit/kit/examples/shipping/cargo"
10         "github.com/go-kit/kit/examples/shipping/location"
11         "github.com/go-kit/kit/examples/shipping/voyage"
12 )
13
14 type registerIncidentRequest struct {
15         ID             cargo.TrackingID
16         Location       location.UNLocode
17         Voyage         voyage.Number
18         EventType      cargo.HandlingEventType
19         CompletionTime time.Time
20 }
21
22 type registerIncidentResponse struct {
23         Err error `json:"error,omitempty"`
24 }
25
26 func (r registerIncidentResponse) error() error { return r.Err }
27
28 func makeRegisterIncidentEndpoint(hs Service) endpoint.Endpoint {
29         return func(ctx context.Context, request interface{}) (interface{}, error) {
30                 req := request.(registerIncidentRequest)
31                 err := hs.RegisterHandlingEvent(req.CompletionTime, req.ID, req.Voyage, req.Location, req.EventType)
32                 return registerIncidentResponse{Err: err}, nil
33         }
34 }