switch to using json.Number to handle ontgov switching data types in response

main
Ray Slakinski 2021-06-06 12:30:03 -04:00
parent 1f5bef39a0
commit d9f7835a5e
1 changed files with 45 additions and 16 deletions

61
main.go
View File

@ -34,15 +34,15 @@ type OntCovidData struct {
} `json:"fields"`
RecordsFormat string `json:"records_format"`
Records []struct {
ID int `json:"_id"`
ReportDate string `json:"report_date"`
PreviousDayDosesAdministered int `json:"previous_day_total_doses_administered"`
PreviousDayAtLeastOne int `json:"previous_day_at_least_one"`
PreviousDayFullyVaccinated int `json:"previous_day_fully_vaccinated"`
TotalDosesAdministered int `json:"total_doses_administered"`
TotalDosesAtLeastOne int `json:"total_individuals_at_least_one"`
TotalDosesInFullyVaccinatedIndividuals int `json:"total_doses_in_fully_vaccinated_individuals"`
TotalIndividualsFullyVaccinated int `json:"total_individuals_fully_vaccinated"`
ID int `json:"_id"`
ReportDate string `json:"report_date"`
PreviousDayDosesAdministered json.Number `json:"previous_day_total_doses_administered"`
PreviousDayAtLeastOne json.Number `json:"previous_day_at_least_one"`
PreviousDayFullyVaccinated json.Number `json:"previous_day_fully_vaccinated"`
TotalDosesAdministered json.Number `json:"total_doses_administered"`
TotalDosesAtLeastOne json.Number `json:"total_individuals_at_least_one"`
TotalDosesInFullyVaccinatedIndividuals json.Number `json:"total_doses_in_fully_vaccinated_individuals"`
TotalIndividualsFullyVaccinated json.Number `json:"total_individuals_fully_vaccinated"`
} `json:"records"`
Limit int `json:"limit"`
Links struct {
@ -88,13 +88,42 @@ func updateMetrics() {
return
}
records.PreviousDayDosesAdministered().Set(float64(data.Result.Records[0].PreviousDayDosesAdministered))
records.PreviousDayAtLeastOne().Set(float64(data.Result.Records[0].PreviousDayAtLeastOne))
records.PreviousDayFullyVaccinated().Set(float64(data.Result.Records[0].PreviousDayFullyVaccinated))
records.TotalDosesAdministered().Set(float64(data.Result.Records[0].TotalDosesAdministered))
records.TotalDosesAtLeastOne().Set(float64(data.Result.Records[0].TotalDosesAtLeastOne))
records.TotalDosesInFullyVaccinatedIndividuals().Set(float64(data.Result.Records[0].TotalDosesInFullyVaccinatedIndividuals))
records.TotalIndividualsFullyVaccinated().Set(float64(data.Result.Records[0].TotalIndividualsFullyVaccinated))
previousDayDosesAdministered, err := data.Result.Records[0].PreviousDayDosesAdministered.Float64()
if err != nil {
log.Println(err)
}
previousDayAtLeastOne, err := data.Result.Records[0].PreviousDayAtLeastOne.Float64()
if err != nil {
log.Println(err)
}
previousDayFullyVaccinated, err := data.Result.Records[0].PreviousDayFullyVaccinated.Float64()
if err != nil {
log.Println(err)
}
totalDosesAdministered, err := data.Result.Records[0].TotalDosesAdministered.Float64()
if err != nil {
log.Println(err)
}
totalDosesAtLeastOne, err := data.Result.Records[0].TotalDosesAtLeastOne.Float64()
if err != nil {
log.Println(err)
}
totalDosesInFullyVaccinatedIndividuals, err := data.Result.Records[0].TotalDosesInFullyVaccinatedIndividuals.Float64()
if err != nil {
log.Println(err)
}
totalIndividualsFullyVaccinated, err := data.Result.Records[0].TotalIndividualsFullyVaccinated.Float64()
if err != nil {
log.Println(err)
}
records.PreviousDayDosesAdministered().Set(previousDayDosesAdministered)
records.PreviousDayAtLeastOne().Set(previousDayAtLeastOne)
records.PreviousDayFullyVaccinated().Set(previousDayFullyVaccinated)
records.TotalDosesAdministered().Set(totalDosesAdministered)
records.TotalDosesAtLeastOne().Set(totalDosesAtLeastOne)
records.TotalDosesInFullyVaccinatedIndividuals().Set(totalDosesInFullyVaccinatedIndividuals)
records.TotalIndividualsFullyVaccinated().Set(totalIndividualsFullyVaccinated)
records.EligiblePopulation().Set(float64(eligiblePopulation))
}