timetable-mgr/dbAccess/corpus.go

56 lines
1.5 KiB
Go
Raw Normal View History

2024-03-26 16:32:00 +00:00
package dbAccess
import (
"context"
"git.fjla.uk/owlboard/go-types/pkg/database"
2024-03-26 16:32:00 +00:00
)
// Puts an array of Corpus Documents into the database
func PutManyCorpus(corpusData []database.CorpusEntry) error {
collection := MongoClient.Database(databaseName).Collection(CorpusCollection)
documents := convertCorpusToInterfaceSlice(corpusData)
2024-03-26 16:32:00 +00:00
_, err := collection.InsertMany(context.Background(), documents)
2024-03-26 16:32:00 +00:00
if err != nil {
return err
}
SetUpdateTime(CorpusCollection)
return nil
}
// Puts an array of Stations documents into the database
func PutManyStations(stationsData []database.StationEntry) error {
collection := MongoClient.Database(databaseName).Collection(StationsCollection)
documents := convertStationsToInterfaceSlice(stationsData)
_, err := collection.InsertMany(context.Background(), documents)
2024-03-26 16:32:00 +00:00
if err != nil {
return err
}
SetUpdateTime(StationsCollection)
2024-03-26 16:32:00 +00:00
return nil
}
// Converts []database.CorpusEntry types into interface slices required to put them into the database
func convertCorpusToInterfaceSlice(corpusData []database.CorpusEntry) []interface{} {
interfaceSlice := make([]interface{}, len(corpusData))
for i, doc := range corpusData {
interfaceSlice[i] = doc
}
return interfaceSlice
}
// Converts []database.StationEntry types into interface slices required to put them into the database
func convertStationsToInterfaceSlice(stationsData []database.StationEntry) []interface{} {
interfaceSlice := make([]interface{}, len(stationsData))
for i, doc := range stationsData {
interfaceSlice[i] = doc
}
return interfaceSlice
}