1package handling
2
3import (
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
14type registerIncidentRequest struct {
15	ID             cargo.TrackingID
16	Location       location.UNLocode
17	Voyage         voyage.Number
18	EventType      cargo.HandlingEventType
19	CompletionTime time.Time
20}
21
22type registerIncidentResponse struct {
23	Err error `json:"error,omitempty"`
24}
25
26func (r registerIncidentResponse) error() error { return r.Err }
27
28func 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}
35