szczanieckiej.git

commit ad36ab38d4e83bf5567dce05fd14125e5586b502

Author: Adam <git@apiote.xyz>

move structures to traffic and finalise clockworkOrange

 api/structs_gen.go | 113 ++++++++++++++++++++---
 traffic/realtime.go | 75 ---------------
 traffic/realtime_lua.go | 12 --
 traffic/structs_gen.go | 203 ++++++++++++++++++++++++++++++++++++++++++


diff --git a/api/structs_gen.go b/api/structs_gen.go
index 783f116ec9e066b41e619c57de0c73a71dabe25d..64aec6e11ae8b12c13a5c9fc03f8ec5834082444 100644
--- a/api/structs_gen.go
+++ b/api/structs_gen.go
@@ -19,6 +19,18 @@ func (t *LineResponseDev) Encode() ([]byte, error) {
 	return bare.Marshal(t)
 }
 
+type LineResponseV2 struct {
+	Line LineV2 `bare:"line"`
+}
+
+func (t *LineResponseV2) Decode(data []byte) error {
+	return bare.Unmarshal(data, t)
+}
+
+func (t *LineResponseV2) Encode() ([]byte, error) {
+	return bare.Marshal(t)
+}
+
 type LineResponseV1 struct {
 	Line LineV1 `bare:"line"`
 }
@@ -40,6 +52,18 @@ 	return bare.Unmarshal(data, t)
 }
 
 func (t *FeedsResponseDev) Encode() ([]byte, error) {
+	return bare.Marshal(t)
+}
+
+type FeedsResponseV2 struct {
+	Feeds []FeedInfoV2 `bare:"feeds"`
+}
+
+func (t *FeedsResponseV2) Decode(data []byte) error {
+	return bare.Unmarshal(data, t)
+}
+
+func (t *FeedsResponseV2) Encode() ([]byte, error) {
 	return bare.Marshal(t)
 }
 
@@ -104,15 +128,15 @@ func (t *QueryablesResponseDev) Encode() ([]byte, error) {
 	return bare.Marshal(t)
 }
 
-type QueryablesResponseV1 struct {
-	Queryables []QueryableV1 `bare:"queryables"`
+type QueryablesResponseV3 struct {
+	Queryables []QueryableV3 `bare:"queryables"`
 }
 
-func (t *QueryablesResponseV1) Decode(data []byte) error {
+func (t *QueryablesResponseV3) Decode(data []byte) error {
 	return bare.Unmarshal(data, t)
 }
 
-func (t *QueryablesResponseV1) Encode() ([]byte, error) {
+func (t *QueryablesResponseV3) Encode() ([]byte, error) {
 	return bare.Marshal(t)
 }
 
@@ -125,6 +149,18 @@ 	return bare.Unmarshal(data, t)
 }
 
 func (t *QueryablesResponseV2) Encode() ([]byte, error) {
+	return bare.Marshal(t)
+}
+
+type QueryablesResponseV1 struct {
+	Queryables []QueryableV1 `bare:"queryables"`
+}
+
+func (t *QueryablesResponseV1) Decode(data []byte) error {
+	return bare.Unmarshal(data, t)
+}
+
+func (t *QueryablesResponseV1) Encode() ([]byte, error) {
 	return bare.Marshal(t)
 }
 
@@ -263,15 +299,15 @@ func (t *LocatablesResponseDev) Encode() ([]byte, error) {
 	return bare.Marshal(t)
 }
 
-type LocatablesResponseV1 struct {
-	Locatables []LocatableV1 `bare:"locatables"`
+type LocatablesResponseV3 struct {
+	Locatables []LocatableV3 `bare:"locatables"`
 }
 
-func (t *LocatablesResponseV1) Decode(data []byte) error {
+func (t *LocatablesResponseV3) Decode(data []byte) error {
 	return bare.Unmarshal(data, t)
 }
 
-func (t *LocatablesResponseV1) Encode() ([]byte, error) {
+func (t *LocatablesResponseV3) Encode() ([]byte, error) {
 	return bare.Marshal(t)
 }
 
@@ -287,6 +323,18 @@ func (t *LocatablesResponseV2) Encode() ([]byte, error) {
 	return bare.Marshal(t)
 }
 
+type LocatablesResponseV1 struct {
+	Locatables []LocatableV1 `bare:"locatables"`
+}
+
+func (t *LocatablesResponseV1) Decode(data []byte) error {
+	return bare.Unmarshal(data, t)
+}
+
+func (t *LocatablesResponseV1) Encode() ([]byte, error) {
+	return bare.Marshal(t)
+}
+
 type VehicleV1 struct {
 	Id              string            `bare:"id"`
 	Position        PositionV1        `bare:"position"`
@@ -414,17 +462,17 @@ func (t *DeparturesResponseDev) Encode() ([]byte, error) {
 	return bare.Marshal(t)
 }
 
-type DeparturesResponseV1 struct {
+type DeparturesResponseV3 struct {
 	Alerts     []AlertV1     `bare:"alerts"`
-	Departures []DepartureV1 `bare:"departures"`
-	Stop       StopV1        `bare:"stop"`
+	Departures []DepartureV3 `bare:"departures"`
+	Stop       StopV2        `bare:"stop"`
 }
 
-func (t *DeparturesResponseV1) Decode(data []byte) error {
+func (t *DeparturesResponseV3) Decode(data []byte) error {
 	return bare.Unmarshal(data, t)
 }
 
-func (t *DeparturesResponseV1) Encode() ([]byte, error) {
+func (t *DeparturesResponseV3) Encode() ([]byte, error) {
 	return bare.Marshal(t)
 }
 
@@ -439,6 +487,20 @@ 	return bare.Unmarshal(data, t)
 }
 
 func (t *DeparturesResponseV2) Encode() ([]byte, error) {
+	return bare.Marshal(t)
+}
+
+type DeparturesResponseV1 struct {
+	Alerts     []AlertV1     `bare:"alerts"`
+	Departures []DepartureV1 `bare:"departures"`
+	Stop       StopV1        `bare:"stop"`
+}
+
+func (t *DeparturesResponseV1) Decode(data []byte) error {
+	return bare.Unmarshal(data, t)
+}
+
+func (t *DeparturesResponseV1) Encode() ([]byte, error) {
 	return bare.Marshal(t)
 }
 
@@ -863,6 +925,8 @@ func (_ LineResponseDev) IsUnion() {}
 
 func (_ LineResponseV1) IsUnion() {}
 
+func (_ LineResponseV2) IsUnion() {}
+
 type FeedsResponse interface {
 	bare.Union
 }
@@ -871,6 +935,8 @@ func (_ FeedsResponseDev) IsUnion() {}
 
 func (_ FeedsResponseV1) IsUnion() {}
 
+func (_ FeedsResponseV2) IsUnion() {}
+
 type QueryablesResponse interface {
 	bare.Union
 }
@@ -880,6 +946,8 @@
 func (_ QueryablesResponseV1) IsUnion() {}
 
 func (_ QueryablesResponseV2) IsUnion() {}
+
+func (_ QueryablesResponseV3) IsUnion() {}
 
 type QueryableV1 interface {
 	bare.Union
@@ -912,6 +980,8 @@ func (_ LocatablesResponseV1) IsUnion() {}
 
 func (_ LocatablesResponseV2) IsUnion() {}
 
+func (_ LocatablesResponseV3) IsUnion() {}
+
 type LocatableV1 interface {
 	bare.Union
 }
@@ -943,19 +1013,24 @@ func (_ DeparturesResponseV1) IsUnion() {}
 
 func (_ DeparturesResponseV2) IsUnion() {}
 
+func (_ DeparturesResponseV3) IsUnion() {}
+
 func init() {
 	bare.RegisterUnion((*LineResponse)(nil)).
 		Member(*new(LineResponseDev), 0).
-		Member(*new(LineResponseV1), 1)
+		Member(*new(LineResponseV1), 1).
+		Member(*new(LineResponseV2), 2)
 
 	bare.RegisterUnion((*FeedsResponse)(nil)).
 		Member(*new(FeedsResponseDev), 0).
-		Member(*new(FeedsResponseV1), 1)
+		Member(*new(FeedsResponseV1), 1).
+		Member(*new(FeedsResponseV2), 2)
 
 	bare.RegisterUnion((*QueryablesResponse)(nil)).
 		Member(*new(QueryablesResponseDev), 0).
 		Member(*new(QueryablesResponseV1), 1).
-		Member(*new(QueryablesResponseV2), 2)
+		Member(*new(QueryablesResponseV2), 2).
+		Member(*new(QueryablesResponseV3), 3)
 
 	bare.RegisterUnion((*QueryableV1)(nil)).
 		Member(*new(StopV1), 0)
@@ -971,7 +1046,8 @@
 	bare.RegisterUnion((*LocatablesResponse)(nil)).
 		Member(*new(LocatablesResponseDev), 0).
 		Member(*new(LocatablesResponseV1), 1).
-		Member(*new(LocatablesResponseV2), 2)
+		Member(*new(LocatablesResponseV2), 2).
+		Member(*new(LocatablesResponseV3), 3)
 
 	bare.RegisterUnion((*LocatableV1)(nil)).
 		Member(*new(StopV1), 0).
@@ -988,6 +1064,7 @@
 	bare.RegisterUnion((*DeparturesResponse)(nil)).
 		Member(*new(DeparturesResponseDev), 0).
 		Member(*new(DeparturesResponseV1), 1).
-		Member(*new(DeparturesResponseV2), 2)
+		Member(*new(DeparturesResponseV2), 2).
+		Member(*new(DeparturesResponseV3), 3)
 
 }




diff --git a/traffic/realtime.go b/traffic/realtime.go
index b32b909cb97a7a6b3d38ac85f6c55913a39596ac..d30d0a3cae45e4311f024db114b7eb9320489359 100644
--- a/traffic/realtime.go
+++ b/traffic/realtime.go
@@ -12,81 +12,6 @@ 	"git.sr.ht/~sircmpwn/go-bare"
 	"golang.org/x/text/language"
 )
 
-type TimetableRelationship uint
-
-const (
-	NOT_REALTIME TimetableRelationship = iota
-	TRIP_SCHEDULED
-	TRIP_CANCELED
-	TRIP_DELETED
-	TRIP_ADDED
-	STOP_SKIPPED
-	NO_TRIP_DATA
-)
-
-type Update struct {
-	Time                  string // "HHmmss"
-	StopSequence          uint32
-	StopID                string
-	Delay                 int32                 // seconds
-	TimetableRelationship TimetableRelationship // TODO better name
-	VehicleStatus         VehicleStatus
-}
-type VehicleStatus struct {
-	Status                  DepartureStatus
-	CongestionLevel         CongestionLevel
-	OccupancyStatus         OccupancyStatus
-	VehicleID               string
-	Latitude                float64
-	Longitude               float64
-	Speed                   float32 // m/s
-	Bearing                 float64 // radians clockwise from north // TODO maybe (-π, π)
-	LineName                string
-	Headsign                string
-	TripID                  string
-	WheelchairAccessibility WheelchairAccessibility
-}
-
-type CongestionLevel uint
-
-const (
-	CONGESTION_UNKNOWN CongestionLevel = iota
-	CONGESTION_SMOOTH
-	CONGESTION_STOP_AND_GO
-	CONGESTION_SIGNIFICANT
-	CONGESTION_SEVERE
-)
-
-type OccupancyStatus uint
-
-const (
-	OCCUPANCY_UNKNOWN OccupancyStatus = iota
-	OCCUPANCY_EMPTY
-	OCCUPANCY_MANY_AVAILABLE
-	OCCUPANCY_FEW_AVAILABLE
-	OCCUPANCY_STANDING_ONLY
-	OCCUPANCY_CRUSHED
-	OCCUPANCY_FULL
-	OCCUPANCY_NOT_ACCEPTING
-)
-
-type WheelchairAccessibility uint
-
-const (
-	WHEELCHAIR_NO_DATA WheelchairAccessibility = iota
-	WHEELCHAIR_UNKNOWN
-	WHHELCHAIR_ACCESSIBLE
-	WHEELCHAIR_INACCESSIBLE
-)
-
-type DepartureStatus uint
-
-const (
-	IN_TRANSIT DepartureStatus = iota
-	AT_STOP
-	INCOMING
-)
-
 type BlockingError struct {
 	cause error
 }




diff --git a/traffic/realtime_lua.go b/traffic/realtime_lua.go
index e1ac5d5e07d071685eb0032c7cc705ece0bd5830..4218419a4e805a2f3cdf03909475bdf9460498b2 100644
--- a/traffic/realtime_lua.go
+++ b/traffic/realtime_lua.go
@@ -16,18 +16,6 @@
 // ..................... feedID                          stopID
 var lastUpdatedLua = map[string]map[RealtimeFeedType]map[string]uint64{}
 
-type LuaUpdates struct {
-	AreTripsInTimetable bool
-	Updates             map[string]Update
-	// TODO Alerts
-}
-
-type LuaError struct {
-	HttpResponseCode    int
-	Message             string
-	WillNextRequestFail bool
-}
-
 func (e LuaError) Error() string {
 	return e.Message
 }




diff --git a/traffic/structs_gen.go b/traffic/structs_gen.go
index 8dc02eb74541f35ccb516be8aec3899c142bf651..f4acab726f09c9297265cccc18fc9ebaba49d946 100644
--- a/traffic/structs_gen.go
+++ b/traffic/structs_gen.go
@@ -274,6 +274,73 @@ func (t *DateRange) Encode() ([]byte, error) {
 	return bare.Marshal(t)
 }
 
+type LuaUpdates struct {
+	AreTripsInTimetable bool              `bare:"areTripsInTimetable"`
+	Updates             map[string]Update `bare:"updates"`
+}
+
+func (t *LuaUpdates) Decode(data []byte) error {
+	return bare.Unmarshal(data, t)
+}
+
+func (t *LuaUpdates) Encode() ([]byte, error) {
+	return bare.Marshal(t)
+}
+
+type LuaError struct {
+	HttpResponseCode    int    `bare:"httpResponseCode"`
+	Message             string `bare:"message"`
+	WillNextRequestFail bool   `bare:"willNextRequestFail"`
+}
+
+func (t *LuaError) Decode(data []byte) error {
+	return bare.Unmarshal(data, t)
+}
+
+func (t *LuaError) Encode() ([]byte, error) {
+	return bare.Marshal(t)
+}
+
+type Update struct {
+	Time                  string                `bare:"time"`
+	StopSequence          uint32                `bare:"stopSequence"`
+	StopID                string                `bare:"stopID"`
+	Delay                 int32                 `bare:"delay"`
+	TimetableRelationship TimetableRelationship `bare:"timetableRelationship"`
+	VehicleStatus         VehicleStatus         `bare:"vehicleStatus"`
+}
+
+func (t *Update) Decode(data []byte) error {
+	return bare.Unmarshal(data, t)
+}
+
+func (t *Update) Encode() ([]byte, error) {
+	return bare.Marshal(t)
+}
+
+type VehicleStatus struct {
+	Status                  DepartureStatus         `bare:"status"`
+	CongestionLevel         CongestionLevel         `bare:"congestionLevel"`
+	OccupancyStatus         OccupancyStatus         `bare:"occupancyStatus"`
+	VehicleID               string                  `bare:"vehicleID"`
+	Latitude                float64                 `bare:"latitude"`
+	Longitude               float64                 `bare:"longitude"`
+	Speed                   float32                 `bare:"speed"`
+	Bearing                 float64                 `bare:"bearing"`
+	LineName                string                  `bare:"lineName"`
+	Headsign                string                  `bare:"headsign"`
+	TripID                  string                  `bare:"tripID"`
+	WheelchairAccessibility WheelchairAccessibility `bare:"wheelchairAccessibility"`
+}
+
+func (t *VehicleStatus) Decode(data []byte) error {
+	return bare.Unmarshal(data, t)
+}
+
+func (t *VehicleStatus) Encode() ([]byte, error) {
+	return bare.Marshal(t)
+}
+
 type Direction uint
 
 const (
@@ -435,3 +502,139 @@ 		return "QRLocationQuery"
 	}
 	panic(errors.New("Invalid QRLocation value"))
 }
+
+type TimetableRelationship uint
+
+const (
+	NOT_REALTIME   TimetableRelationship = 0
+	TRIP_SCHEDULED TimetableRelationship = 1
+	TRIP_CANCELED  TimetableRelationship = 2
+	TRIP_DELETED   TimetableRelationship = 3
+	TRIP_ADDED     TimetableRelationship = 4
+	STOP_SKIPPED   TimetableRelationship = 5
+	NO_TRIP_DATA   TimetableRelationship = 6
+)
+
+func (t TimetableRelationship) String() string {
+	switch t {
+	case NOT_REALTIME:
+		return "NOT_REALTIME"
+	case TRIP_SCHEDULED:
+		return "TRIP_SCHEDULED"
+	case TRIP_CANCELED:
+		return "TRIP_CANCELED"
+	case TRIP_DELETED:
+		return "TRIP_DELETED"
+	case TRIP_ADDED:
+		return "TRIP_ADDED"
+	case STOP_SKIPPED:
+		return "STOP_SKIPPED"
+	case NO_TRIP_DATA:
+		return "NO_TRIP_DATA"
+	}
+	panic(errors.New("Invalid TimetableRelationship value"))
+}
+
+type CongestionLevel uint
+
+const (
+	CONGESTION_UNKNOWN     CongestionLevel = 0
+	CONGESTION_SMOOTH      CongestionLevel = 1
+	CONGESTION_STOP_AND_GO CongestionLevel = 2
+	CONGESTION_SIGNIFICANT CongestionLevel = 3
+	CONGESTION_SEVERE      CongestionLevel = 4
+)
+
+func (t CongestionLevel) String() string {
+	switch t {
+	case CONGESTION_UNKNOWN:
+		return "CONGESTION_UNKNOWN"
+	case CONGESTION_SMOOTH:
+		return "CONGESTION_SMOOTH"
+	case CONGESTION_STOP_AND_GO:
+		return "CONGESTION_STOP_AND_GO"
+	case CONGESTION_SIGNIFICANT:
+		return "CONGESTION_SIGNIFICANT"
+	case CONGESTION_SEVERE:
+		return "CONGESTION_SEVERE"
+	}
+	panic(errors.New("Invalid CongestionLevel value"))
+}
+
+type OccupancyStatus uint
+
+const (
+	OCCUPANCY_UNKNOWN        OccupancyStatus = 0
+	OCCUPANCY_EMPTY          OccupancyStatus = 1
+	OCCUPANCY_MANY_AVAILABLE OccupancyStatus = 2
+	OCCUPANCY_FEW_AVAILABLE  OccupancyStatus = 3
+	OCCUPANCY_STANDING_ONLY  OccupancyStatus = 4
+	OCCUPANCY_CRUSHED        OccupancyStatus = 5
+	OCCUPANCY_FULL           OccupancyStatus = 6
+	OCCUPANCY_NOT_ACCEPTING  OccupancyStatus = 7
+)
+
+func (t OccupancyStatus) String() string {
+	switch t {
+	case OCCUPANCY_UNKNOWN:
+		return "OCCUPANCY_UNKNOWN"
+	case OCCUPANCY_EMPTY:
+		return "OCCUPANCY_EMPTY"
+	case OCCUPANCY_MANY_AVAILABLE:
+		return "OCCUPANCY_MANY_AVAILABLE"
+	case OCCUPANCY_FEW_AVAILABLE:
+		return "OCCUPANCY_FEW_AVAILABLE"
+	case OCCUPANCY_STANDING_ONLY:
+		return "OCCUPANCY_STANDING_ONLY"
+	case OCCUPANCY_CRUSHED:
+		return "OCCUPANCY_CRUSHED"
+	case OCCUPANCY_FULL:
+		return "OCCUPANCY_FULL"
+	case OCCUPANCY_NOT_ACCEPTING:
+		return "OCCUPANCY_NOT_ACCEPTING"
+	}
+	panic(errors.New("Invalid OccupancyStatus value"))
+}
+
+type WheelchairAccessibility uint
+
+const (
+	WHEELCHAIR_NO_DATA      WheelchairAccessibility = 0
+	WHEELCHAIR_UNKNOWN      WheelchairAccessibility = 1
+	WHHELCHAIR_ACCESSIBLE   WheelchairAccessibility = 2
+	WHEELCHAIR_INACCESSIBLE WheelchairAccessibility = 3
+)
+
+func (t WheelchairAccessibility) String() string {
+	switch t {
+	case WHEELCHAIR_NO_DATA:
+		return "WHEELCHAIR_NO_DATA"
+	case WHEELCHAIR_UNKNOWN:
+		return "WHEELCHAIR_UNKNOWN"
+	case WHHELCHAIR_ACCESSIBLE:
+		return "WHHELCHAIR_ACCESSIBLE"
+	case WHEELCHAIR_INACCESSIBLE:
+		return "WHEELCHAIR_INACCESSIBLE"
+	}
+	panic(errors.New("Invalid WheelchairAccessibility value"))
+}
+
+type DepartureStatus uint
+
+const (
+	IN_TRANSIT DepartureStatus = 0
+	AT_STOP    DepartureStatus = 1
+	INCOMING   DepartureStatus = 2
+)
+
+func (t DepartureStatus) String() string {
+	switch t {
+	case IN_TRANSIT:
+		return "IN_TRANSIT"
+	case AT_STOP:
+		return "AT_STOP"
+	case INCOMING:
+		return "INCOMING"
+	}
+	panic(errors.New("Invalid DepartureStatus value"))
+}