Files
cloud-services/pkg/usecase_helpers/ecus.go

35 lines
941 B
Go

package usecase_helpers
import (
"fiskerinc.com/modules/common"
"fiskerinc.com/modules/db/queries"
)
// PopulateECUsCurrentVersion adds CurrentVersion field in provided ecus list of
// a specific vehicle, defined by vin.
// Since the ecus amount doesn't change, we don't need returning ecus and
// caller can use the same variable he provided in the function.
func PopulateECUsCurrentVersion(cars queries.CarsInterface, vin string, ecus []*common.UpdateManifestECU) error {
ids := make([]string, 0, len(ecus))
for _, ecu := range ecus {
ids = append(ids, ecu.ECU)
}
carECUs, err := cars.GetCarECUs(common.CarECUFilter{VIN: vin, ECUs: ids, Unique: true}, nil)
if err != nil {
return err
}
carECUsMap := make(map[string]string, len(carECUs))
for _, ecu := range carECUs {
carECUsMap[ecu.ECU] = ecu.Version
}
for index, ecu := range ecus {
ecu.CurrentVersion = carECUsMap[ecu.ECU]
ecus[index] = ecu
}
return nil
}