Compare commits

..

4 Commits

Author SHA1 Message Date
Fred Boniface 728e8f89e2 Add VSTP index
Go Test / test (push) Successful in 41s Details
2024-04-23 15:13:16 +01:00
Fred Boniface 8e325339bf Fix typing on generateServiceDetail function 2024-04-23 15:11:51 +01:00
Fred Boniface e0a5bd86d7 Remove hasGuard option 2024-04-23 15:10:44 +01:00
Fred Boniface 73fd0063eb Note adjustemnt 2024-04-23 15:10:20 +01:00
2 changed files with 8 additions and 11 deletions

View File

@ -2,7 +2,6 @@ package cif
import (
"strconv"
"strings"
"git.fjla.uk/owlboard/go-types/pkg/database"
"git.fjla.uk/owlboard/go-types/pkg/upstreamApi"
@ -22,7 +21,7 @@ func ConvertServiceType(input *upstreamApi.JsonScheduleV1, vstp bool) (*database
PlanSpeed: parseSpeed(&input.ScheduleSegment.CifSpeed),
ScheduleStartDate: ParseCifDate(&input.ScheduleStartDate, "start"),
ScheduleEndDate: ParseCifDate(&input.ScheduleEndDate, "end"),
ServiceDetail: generateServiceDetail(&input.ScheduleSegment.CifTrainClass, &input.ScheduleSegment.SignallingId, &input.ScheduleSegment.CifCateringCode, &input.ScheduleSegment.CifSleepers, &input.ScheduleSegment.CifOperatingCharacteristics, vstp),
ServiceDetail: generateServiceDetail(&input.ScheduleSegment.CifTrainClass, &input.ScheduleSegment.SignallingId, &input.ScheduleSegment.CifCateringCode, &input.ScheduleSegment.CifSleepers, vstp),
DaysRun: parseDaysRun(&input.ScheduleDaysRun),
Stops: parseStops(&input.ScheduleSegment.ScheduleLocation),
}
@ -86,8 +85,7 @@ func isPublic(input *upstreamApi.CifScheduleLocation) bool {
// Generates a ServiceDetail struct based on the input
func generateServiceDetail(
cifTrainClass, signallingId,
cateringCode, sleepers,
operatingCharacteristics *string,
cateringCode, sleepers *string,
vstp bool,
) database.ServiceDetail {
return database.ServiceDetail{
@ -95,7 +93,6 @@ func generateServiceDetail(
Catering: hasCatering(cateringCode),
Sleeper: hasSleeper(sleepers),
Vstp: vstp,
Guard: hasGuard(operatingCharacteristics),
}
}
@ -129,9 +126,3 @@ func hasSleeper(input *string) bool {
}
return *input != ""
}
// Ascertains whether the service requires a guard
func hasGuard(opChars *string) bool {
str := strings.ToLower(*opChars)
return strings.Contains(str, "g")
}

View File

@ -182,6 +182,12 @@ func CreateTimetableIndexes() error {
},
Options: options.Index().SetName("find_by_headcode"),
},
{
Keys: bson.M{
"serviceDetail.vstp": 1,
},
Options: options.Index().SetName("vstp"),
},
// Add index for VSTP to allow deletion of non-VSTP only entries
}