From ccf83bb31027d1dd197c9dbd631764f9a548be03 Mon Sep 17 00:00:00 2001 From: Andreas Linde <42185+DerAndereAndi@users.noreply.github.com> Date: Tue, 14 Sep 2021 15:45:41 +0200 Subject: [PATCH] Porsche: fix e-mobility vehicle API routes and add login error handling (#1552) Change required as Porsche backend was updated --- vehicle/porsche/identity.go | 3 +++ vehicle/porsche/provider_emobility.go | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/vehicle/porsche/identity.go b/vehicle/porsche/identity.go index 7585882ef..ec2095333 100644 --- a/vehicle/porsche/identity.go +++ b/vehicle/porsche/identity.go @@ -168,6 +168,9 @@ func (v *Identity) fetchToken(emobility bool) (tokenResponse, error) { } authCode := query.Get("code") + if authCode == "" { + return pr, errors.New("no auth code") + } codeVerifier := CodeVerifier.CodeChallengePlain() diff --git a/vehicle/porsche/provider_emobility.go b/vehicle/porsche/provider_emobility.go index 987498615..42c71de15 100644 --- a/vehicle/porsche/provider_emobility.go +++ b/vehicle/porsche/provider_emobility.go @@ -112,7 +112,7 @@ func (v *EMobilityProvider) request(uri string) (*http.Request, error) { // Status implements the vehicle status response func (v *EMobilityProvider) status(vin string) (interface{}, error) { if v.carModel == "" { - uri := fmt.Sprintf("https://api.porsche.com/service-vehicle/vcs/capabilities/%s", vin) + uri := fmt.Sprintf("https://api.porsche.com/e-mobility/vcs/capabilities/%s", vin) req, err := v.request(uri) if err != nil { return 0, err @@ -128,7 +128,7 @@ func (v *EMobilityProvider) status(vin string) (interface{}, error) { v.carModel = cr.CarModel } - uri := fmt.Sprintf("https://api.porsche.com/service-vehicle/de/de_DE/e-mobility/%s/%s?timezone=Europe/Berlin", v.carModel, vin) + uri := fmt.Sprintf("https://api.porsche.com/e-mobility/de/de_DE/%s/%s?timezone=Europe/Berlin", v.carModel, vin) req, err := v.request(uri) if err != nil { return 0, err