Cupra: support nickname from api (#9701)

This commit is contained in:
andig 2023-09-03 14:50:04 +02:00 • committed by GitHub
parent 5db7bf5cc3
commit a70b761bb3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 12 deletions

View file

@ -65,12 +65,21 @@ func NewCupraFromConfig(other map[string]interface{}) (api.Vehicle, error) {
api := cupra.NewAPI(log, ts)
cc.VIN, err = ensureVehicle(cc.VIN, func() ([]string, error) {
return api.Vehicles(ui.Subject)
})
vehicle, err := ensureVehicleEx(
cc.VIN, func() ([]cupra.Vehicle, error) {
return api.Vehicles(ui.Subject)
},
func(v cupra.Vehicle) string {
return v.VIN
},
)
if err == nil {
v.Provider = cupra.NewProvider(api, ui.Subject, cc.VIN, cc.Cache)
v.fromVehicle(vehicle.VehicleNickname, 0)
}
if err == nil {
v.Provider = cupra.NewProvider(api, ui.Subject, vehicle.VIN, cc.Cache)
}
return v, err

View file

@ -38,19 +38,15 @@ func NewAPI(log *util.Logger, ts oauth2.TokenSource) *API {
}
// Vehicles implements the /vehicles response
func (v *API) Vehicles(userID string) (res []string, err error) {
var vehicles struct {
func (v *API) Vehicles(userID string) ([]Vehicle, error) {
var res struct {
Vehicles []Vehicle
}
uri := fmt.Sprintf("%s/v1/users/%s/garage/vehicles", BaseURL, userID)
err = v.GetJSON(uri, &vehicles)
err := v.GetJSON(uri, &res)
for _, v := range vehicles.Vehicles {
res = append(res, v.VIN)
}
return res, err
return res.Vehicles, err
}
// Status implements the /status response