func storeTestData(r cargo.Repository) { test1 := cargo.New("FTL456", cargo.RouteSpecification{ Origin: location.AUMEL, Destination: location.SESTO, ArrivalDeadline: time.Now().AddDate(0, 0, 7), }) _ = r.Store(test1) test2 := cargo.New("ABC123", cargo.RouteSpecification{ Origin: location.SESTO, Destination: location.CNHKG, ArrivalDeadline: time.Now().AddDate(0, 0, 14), }) _ = r.Store(test2) }
func (s *service) BookNewCargo(origin, destination location.UNLocode, arrivalDeadline time.Time) (cargo.TrackingID, error) { if origin == "" || destination == "" || arrivalDeadline.IsZero() { return "", ErrInvalidArgument } id := cargo.NextTrackingID() rs := cargo.RouteSpecification{ Origin: origin, Destination: destination, ArrivalDeadline: arrivalDeadline, } c := cargo.New(id, rs) if err := s.cargoRepository.Store(c); err != nil { return "", err } return c.TrackingID, nil }