This commit is contained in:
		
							parent
							
								
									a153fd4990
								
							
						
					
					
						commit
						358e69bec7
					
				| @ -40,6 +40,7 @@ func runTicker(cfg *helpers.Configuration, stop <-chan struct{}) { | ||||
| 			log.Debug("Running background tasks") | ||||
| 			go cif.CheckCif(cfg) | ||||
| 			go corpus.CheckCorpus(cfg) | ||||
| 			//go stations.Check() | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @ -2,6 +2,7 @@ package dbAccess | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| 	"fmt" | ||||
| 
 | ||||
| 	"git.fjla.uk/owlboard/go-types/pkg/database" | ||||
| 	"go.mongodb.org/mongo-driver/bson" | ||||
| @ -80,3 +81,15 @@ func CreateCorpusIndexes() error { | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func GetTiplocFromCrs(crs string) (tiploc string, err error) { | ||||
| 	// Return TIPLOC from CRS code | ||||
| 	err = fmt.Errorf("not yet written") | ||||
| 	return "", err | ||||
| } | ||||
| 
 | ||||
| func GetStanoxFromCrs(crs string) (stanox string, err error) { | ||||
| 	// Return STANOX from CRS code | ||||
| 	err = fmt.Errorf("not yet written") | ||||
| 	return "", err | ||||
| } | ||||
|  | ||||
							
								
								
									
										3
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								main.go
									
									
									
									
									
								
							| @ -16,6 +16,7 @@ import ( | ||||
| 	"git.fjla.uk/owlboard/timetable-mgr/helpers" | ||||
| 	"git.fjla.uk/owlboard/timetable-mgr/log" | ||||
| 	"git.fjla.uk/owlboard/timetable-mgr/messaging" | ||||
| 	"git.fjla.uk/owlboard/timetable-mgr/stations" | ||||
| 	"git.fjla.uk/owlboard/timetable-mgr/vstp" | ||||
| 	"go.uber.org/zap" | ||||
| ) | ||||
| @ -65,6 +66,8 @@ func main() { | ||||
| 	go cif.CheckCif(cfg) | ||||
| 	go corpus.CheckCorpus(cfg) | ||||
| 
 | ||||
| 	stations.Check() | ||||
| 
 | ||||
| 	if cfg.VstpOn { | ||||
| 		messaging.StompInit(cfg) | ||||
| 		vstp.Subscribe() | ||||
|  | ||||
| @ -12,5 +12,8 @@ func run() { | ||||
| 		fmt.Println(err) | ||||
| 	} | ||||
| 
 | ||||
| 	parseData(data, data2) | ||||
| 	_, err = parseData(data, data2) | ||||
| 	if err != nil { | ||||
| 		fmt.Println(err) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @ -7,6 +7,7 @@ import ( | ||||
| 
 | ||||
| 	"git.fjla.uk/owlboard/go-types/pkg/database" | ||||
| 	"git.fjla.uk/owlboard/go-types/pkg/upstreamApi" | ||||
| 	"git.fjla.uk/owlboard/timetable-mgr/dbAccess" | ||||
| ) | ||||
| 
 | ||||
| // Parses n number of XML byte arrays | ||||
| @ -20,9 +21,16 @@ func parseData(data ...[]byte) ([]database.Station, error) { | ||||
| 		stations = append(stations, parsedStations...) | ||||
| 	} | ||||
| 
 | ||||
| 	fmt.Println(stations) | ||||
| 	return nil, nil | ||||
| 	// Transform from upstreamApi.Station to database.Station | ||||
| 	var output []database.Station | ||||
| 	for _, s := range stations { | ||||
| 		outputStation, err := convertApiToDatabase(s) | ||||
| 		if err != nil { | ||||
| 			return nil, err | ||||
| 		} | ||||
| 		output = append(output, outputStation) | ||||
| 	} | ||||
| 	fmt.Println(output) | ||||
| 	return output, nil | ||||
| } | ||||
| 
 | ||||
| // Parses XML and converts to struct | ||||
| @ -38,3 +46,37 @@ func parseXML(data []byte) ([]upstreamApi.Station, error) { | ||||
| 
 | ||||
| 	return stationList.Stations, nil | ||||
| } | ||||
| 
 | ||||
| // Convert API type to Database type ready for insertion | ||||
| func convertApiToDatabase(data upstreamApi.Station) (database.Station, error) { | ||||
| 	if data.CrsCode == "" { | ||||
| 		return database.Station{}, fmt.Errorf("CRS code is required but missing") | ||||
| 	} | ||||
| 
 | ||||
| 	tiploc, err := dbAccess.GetTiplocFromCrs(data.CrsCode) | ||||
| 	if err != nil { | ||||
| 		return database.Station{}, err | ||||
| 	} | ||||
| 
 | ||||
| 	stanox, err := dbAccess.GetStanoxFromCrs(data.CrsCode) | ||||
| 	if err != nil { | ||||
| 		return database.Station{}, err | ||||
| 	} | ||||
| 
 | ||||
| 	output := database.Station{ | ||||
| 		CRS:     data.CrsCode, | ||||
| 		TIPLOC:  tiploc, | ||||
| 		STANOX:  stanox, | ||||
| 		NLCDESC: data.Name, | ||||
| 		Location: database.GeoJson{ | ||||
| 			Type: "Point", | ||||
| 			Coordinates: []float64{ | ||||
| 				data.Longitude, | ||||
| 				data.Latitude, | ||||
| 			}, | ||||
| 		}, | ||||
| 		Operator: data.StationOperator, | ||||
| 	} | ||||
| 
 | ||||
| 	return output, nil | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user