mirror of
https://github.com/AmanTahiliani/box-box.git
synced 2026-08-07 19:56:18 -04:00
fix(web): resolve practice/qualifying partial session bug by flagging starting_grid as N/A
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package query
|
||||
|
||||
import "strings"
|
||||
|
||||
const (
|
||||
DatasetStatusAvailable = "available"
|
||||
DatasetStatusMissing = "missing"
|
||||
@@ -20,6 +22,25 @@ type DatasetInfo struct {
|
||||
Count int `json:"count,omitempty"`
|
||||
}
|
||||
|
||||
func skippedNA() DatasetInfo {
|
||||
return DatasetInfo{
|
||||
Status: "skipped",
|
||||
Source: "na",
|
||||
Count: 0,
|
||||
}
|
||||
}
|
||||
|
||||
func isGridExpected(sessionType, sessionName string) bool {
|
||||
t := strings.ToLower(sessionType)
|
||||
n := strings.ToLower(sessionName)
|
||||
// Grid is only expected on main Sprint or Race sessions, not qualifying, practice, or shootout
|
||||
return (strings.Contains(t, "race") || strings.Contains(n, "race") ||
|
||||
strings.Contains(t, "sprint") || strings.Contains(n, "sprint")) &&
|
||||
!strings.Contains(t, "qualifying") && !strings.Contains(n, "qualifying") &&
|
||||
!strings.Contains(t, "shootout") && !strings.Contains(n, "shootout") &&
|
||||
!strings.Contains(t, "practice") && !strings.Contains(n, "practice")
|
||||
}
|
||||
|
||||
func availableLocal(count int) DatasetInfo {
|
||||
return DatasetInfo{
|
||||
Status: DatasetStatusAvailable,
|
||||
|
||||
@@ -64,8 +64,12 @@ func (s *Service) GetWeekend(meetingKey int) (Weekend, error) {
|
||||
return Weekend{}, err
|
||||
}
|
||||
datasets := datasetsFromCounts(true, true, counts)
|
||||
sessionModel := sessionToModel(sess)
|
||||
if datasets["starting_grid"].Status == DatasetStatusMissing && !isGridExpected(sessionModel.SessionType, sessionModel.SessionName) {
|
||||
datasets["starting_grid"] = skippedNA()
|
||||
}
|
||||
out.Sessions = append(out.Sessions, WeekendSession{
|
||||
Session: sessionToModel(sess),
|
||||
Session: sessionModel,
|
||||
Source: responseSource(datasets),
|
||||
Datasets: datasets,
|
||||
})
|
||||
|
||||
@@ -166,6 +166,8 @@ func (s *Service) GetRaceHub(sessionKey int) (RaceHub, error) {
|
||||
}
|
||||
hub.StartingGrid = enriched
|
||||
hub.Datasets["starting_grid"] = availableLocal(len(enriched))
|
||||
} else if !isGridExpected(sessionModel.SessionType, sessionModel.SessionName) {
|
||||
hub.Datasets["starting_grid"] = skippedNA()
|
||||
}
|
||||
|
||||
stints, err := s.store.ListStints(sessionKey)
|
||||
|
||||
Reference in New Issue
Block a user