Add local-first race hub API

This commit is contained in:
2026-05-25 00:49:13 -04:00
parent 517c6b987b
commit e08255db70
16 changed files with 1231 additions and 118 deletions

View File

@@ -0,0 +1,66 @@
package query
const (
DatasetStatusAvailable = "available"
DatasetStatusMissing = "missing"
DataSourceLocal = "local"
DataSourceNone = "none"
DataSourceOpenF1 = "openf1"
ResponseSourceLocal = "local"
ResponseSourceNone = "none"
ResponseSourcePartial = "partial"
)
// DatasetInfo describes availability of a single dataset.
type DatasetInfo struct {
Status string `json:"status"`
Source string `json:"source"`
Count int `json:"count,omitempty"`
}
func availableLocal(count int) DatasetInfo {
return DatasetInfo{
Status: DatasetStatusAvailable,
Source: DataSourceLocal,
Count: count,
}
}
func missingDataset() DatasetInfo {
return DatasetInfo{
Status: DatasetStatusMissing,
Source: DataSourceNone,
Count: 0,
}
}
func responseSource(datasets map[string]DatasetInfo) string {
if len(datasets) == 0 {
return ResponseSourceNone
}
hasLocal := false
allMissing := true
for _, info := range datasets {
if info.Status == DatasetStatusAvailable && info.Source == DataSourceLocal {
hasLocal = true
allMissing = false
} else if info.Status == DatasetStatusAvailable {
allMissing = false
}
}
if allMissing {
return ResponseSourceNone
}
if hasLocal {
for _, info := range datasets {
if info.Status == DatasetStatusMissing {
return ResponseSourcePartial
}
}
return ResponseSourceLocal
}
return ResponseSourceNone
}