Initial cloud-services repo - gateway service + pkg modules
This commit is contained in:
62
pkg/common/departure_schedule.go
Normal file
62
pkg/common/departure_schedule.go
Normal file
@@ -0,0 +1,62 @@
|
||||
package common
|
||||
|
||||
import "errors"
|
||||
|
||||
var ErrInvalidType = errors.New("invalid type")
|
||||
|
||||
type MobileDepartureSchedule struct {
|
||||
VIN string `json:"vin" validate:"required,vin"`
|
||||
DepartureSchedule DepartureSchedule `json:"departure_schedule" validate:"required"`
|
||||
}
|
||||
|
||||
func (m *MobileDepartureSchedule) SetVIN(vin string) {
|
||||
m.VIN = vin
|
||||
}
|
||||
|
||||
func (m *MobileDepartureSchedule) SetPayload(payload interface{}) error {
|
||||
var ok bool
|
||||
m.DepartureSchedule, ok = payload.(DepartureSchedule)
|
||||
if !ok {
|
||||
return ErrInvalidType
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *MobileDepartureSchedule) GetVIN() string {
|
||||
return m.VIN
|
||||
}
|
||||
|
||||
func (m *MobileDepartureSchedule) GetPayload() interface{} {
|
||||
return m.DepartureSchedule
|
||||
}
|
||||
|
||||
type TRexDepartureSchedule = DepartureSchedule
|
||||
|
||||
type DepartureSchedule struct {
|
||||
NextDayDeparture *string `json:"next_day_departure,omitempty" validate:"required_without=DepartureDays"`
|
||||
DepartureDays []DepartureDay `json:"departure_days,omitempty"`
|
||||
}
|
||||
|
||||
type DepartureDay struct {
|
||||
DayOfWeek string `json:"day_of_week" validate:"oneof=Mon Tue Wed Thu Fri Sat Sun"`
|
||||
Time string `json:"time" validate:"datetime=15:04"`
|
||||
}
|
||||
|
||||
func (m *TRexDepartureSchedule) SetPayload(payload interface{}) error {
|
||||
var ok bool
|
||||
*m, ok = payload.(DepartureSchedule)
|
||||
if !ok {
|
||||
return ErrInvalidType
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *TRexDepartureSchedule) GetMessage() interface{} {
|
||||
return m
|
||||
}
|
||||
|
||||
func (m *TRexDepartureSchedule) GetPayload() interface{} {
|
||||
return *m
|
||||
}
|
||||
Reference in New Issue
Block a user