Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove "unofficial" Tesla registration code #435

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions cmd/devices-api/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,6 @@ func startWebAPI(logger zerolog.Logger, settings *config.Settings, pdb db.Store,
scTaskSvc := services.NewSmartcarTaskService(settings, producer)
smartcarClient := services.NewSmartcarClient(settings)
teslaTaskService := services.NewTeslaTaskService(settings, producer)
teslaSvc := services.NewTeslaService(settings)
teslaFleetAPISvc, err := services.NewTeslaFleetAPIService(settings, &logger)
if err != nil {
logger.Fatal().Err(err).Msg("Error constructing Tesla Fleet API client.")
Expand Down Expand Up @@ -143,7 +142,7 @@ func startWebAPI(logger zerolog.Logger, settings *config.Settings, pdb db.Store,

// controllers
userDeviceController := controllers.NewUserDevicesController(settings, pdb.DBS, &logger, ddSvc, ddIntSvc, eventService,
smartcarClient, scTaskSvc, teslaSvc, teslaTaskService, cipher, autoPiSvc, autoPiIngest,
smartcarClient, scTaskSvc, teslaTaskService, cipher, autoPiSvc, autoPiIngest,
deviceDefinitionRegistrar, producer, s3NFTServiceClient, redisCache, openAI, usersClient,
ddaSvc, natsSvc, wallet, userDeviceSvc, teslaFleetAPISvc, ipfsSvc, chConn)
geofenceController := controllers.NewGeofencesController(settings, pdb.DBS, &logger, producer, ddSvc, usersClient)
Expand Down
19 changes: 8 additions & 11 deletions internal/controllers/device_data_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ type deps struct {
deviceDefSvc *mock_services.MockDeviceDefinitionService
scClient *mock_services.MockSmartcarClient
scTaskSvc *mock_services.MockSmartcarTaskService
teslaSvc *mock_services.MockTeslaService
teslaTaskService *mock_services.MockTeslaTaskService
autoPiIngest *mock_services.MockIngestRegistrar
deviceDefinitionIngest *mock_services.MockDeviceDefinitionRegistrar
Expand All @@ -53,7 +52,6 @@ func createMockDependencies(t *testing.T) deps {
deviceDataSvc := mock_services.NewMockDeviceDataService(mockCtrl)
scClient := mock_services.NewMockSmartcarClient(mockCtrl)
scTaskSvc := mock_services.NewMockSmartcarTaskService(mockCtrl)
teslaSvc := mock_services.NewMockTeslaService(mockCtrl)
teslaTaskService := mock_services.NewMockTeslaTaskService(mockCtrl)
autoPiIngest := mock_services.NewMockIngestRegistrar(mockCtrl)
deviceDefinitionIngest := mock_services.NewMockDeviceDefinitionRegistrar(mockCtrl)
Expand All @@ -70,7 +68,6 @@ func createMockDependencies(t *testing.T) deps {
deviceDefSvc: deviceDefSvc,
scClient: scClient,
scTaskSvc: scTaskSvc,
teslaSvc: teslaSvc,
teslaTaskService: teslaTaskService,
autoPiIngest: autoPiIngest,
deviceDefinitionIngest: deviceDefinitionIngest,
Expand Down Expand Up @@ -98,7 +95,7 @@ func TestUserDevicesController_QueryDeviceErrorCodes(t *testing.T) {
}()

testUserID := "123123"
c := NewUserDevicesController(&config.Settings{Port: "3000"}, pdb.DBS, &mockDeps.logger, mockDeps.deviceDefSvc, mockDeps.deviceDefIntSvc, &fakeEventService{}, mockDeps.scClient, mockDeps.scTaskSvc, mockDeps.teslaSvc, mockDeps.teslaTaskService, nil, nil, mockDeps.autoPiIngest, mockDeps.deviceDefinitionIngest, nil, nil, nil, mockDeps.openAISvc, nil, nil, nil, nil, nil, nil, nil, nil)
c := NewUserDevicesController(&config.Settings{Port: "3000"}, pdb.DBS, &mockDeps.logger, mockDeps.deviceDefSvc, mockDeps.deviceDefIntSvc, &fakeEventService{}, mockDeps.scClient, mockDeps.scTaskSvc, mockDeps.teslaTaskService, nil, nil, mockDeps.autoPiIngest, mockDeps.deviceDefinitionIngest, nil, nil, nil, mockDeps.openAISvc, nil, nil, nil, nil, nil, nil, nil, nil)
app := fiber.New()
app.Post("/user/devices/:userDeviceID/error-codes", test.AuthInjectorTestHandler(testUserID), c.QueryDeviceErrorCodes)

Expand Down Expand Up @@ -173,7 +170,7 @@ func TestUserDevicesController_ShouldErrorOnTooManyErrorCodes(t *testing.T) {
}()

testUserID := "123123"
c := NewUserDevicesController(&config.Settings{Port: "3000"}, pdb.DBS, &mockDeps.logger, mockDeps.deviceDefSvc, mockDeps.deviceDefIntSvc, &fakeEventService{}, mockDeps.scClient, mockDeps.scTaskSvc, mockDeps.teslaSvc, mockDeps.teslaTaskService, nil, nil, mockDeps.autoPiIngest, mockDeps.deviceDefinitionIngest, nil, nil, nil, mockDeps.openAISvc, nil, nil, nil, nil, nil, nil, nil, nil)
c := NewUserDevicesController(&config.Settings{Port: "3000"}, pdb.DBS, &mockDeps.logger, mockDeps.deviceDefSvc, mockDeps.deviceDefIntSvc, &fakeEventService{}, mockDeps.scClient, mockDeps.scTaskSvc, mockDeps.teslaTaskService, nil, nil, mockDeps.autoPiIngest, mockDeps.deviceDefinitionIngest, nil, nil, nil, mockDeps.openAISvc, nil, nil, nil, nil, nil, nil, nil, nil)
app := fiber.New()
app.Post("/user/devices/:userDeviceID/error-codes", test.AuthInjectorTestHandler(testUserID), c.QueryDeviceErrorCodes)

Expand Down Expand Up @@ -247,7 +244,7 @@ func TestUserDevicesController_ShouldErrorInvalidErrorCodes(t *testing.T) {
}()

testUserID := "123123"
c := NewUserDevicesController(&config.Settings{Port: "3000"}, pdb.DBS, &mockDeps.logger, mockDeps.deviceDefSvc, mockDeps.deviceDefIntSvc, &fakeEventService{}, mockDeps.scClient, mockDeps.scTaskSvc, mockDeps.teslaSvc, mockDeps.teslaTaskService, nil, nil, mockDeps.autoPiIngest, mockDeps.deviceDefinitionIngest, nil, nil, nil, mockDeps.openAISvc, nil, nil, nil, nil, nil, nil, nil, nil)
c := NewUserDevicesController(&config.Settings{Port: "3000"}, pdb.DBS, &mockDeps.logger, mockDeps.deviceDefSvc, mockDeps.deviceDefIntSvc, &fakeEventService{}, mockDeps.scClient, mockDeps.scTaskSvc, mockDeps.teslaTaskService, nil, nil, mockDeps.autoPiIngest, mockDeps.deviceDefinitionIngest, nil, nil, nil, mockDeps.openAISvc, nil, nil, nil, nil, nil, nil, nil, nil)
app := fiber.New()
app.Post("/user/devices/:userDeviceID/error-codes", test.AuthInjectorTestHandler(testUserID), c.QueryDeviceErrorCodes)

Expand Down Expand Up @@ -317,7 +314,7 @@ func TestUserDevicesController_ShouldErrorOnEmptyErrorCodes(t *testing.T) {
}()

testUserID := "123123"
c := NewUserDevicesController(&config.Settings{Port: "3000"}, pdb.DBS, &mockDeps.logger, mockDeps.deviceDefSvc, mockDeps.deviceDefIntSvc, &fakeEventService{}, mockDeps.scClient, mockDeps.scTaskSvc, mockDeps.teslaSvc, mockDeps.teslaTaskService, nil, nil, mockDeps.autoPiIngest, mockDeps.deviceDefinitionIngest, nil, nil, nil, mockDeps.openAISvc, nil, nil, nil, nil, nil, nil, nil, nil)
c := NewUserDevicesController(&config.Settings{Port: "3000"}, pdb.DBS, &mockDeps.logger, mockDeps.deviceDefSvc, mockDeps.deviceDefIntSvc, &fakeEventService{}, mockDeps.scClient, mockDeps.scTaskSvc, mockDeps.teslaTaskService, nil, nil, mockDeps.autoPiIngest, mockDeps.deviceDefinitionIngest, nil, nil, nil, mockDeps.openAISvc, nil, nil, nil, nil, nil, nil, nil, nil)
app := fiber.New()
app.Post("/user/devices/:userDeviceID/error-codes", test.AuthInjectorTestHandler(testUserID), c.QueryDeviceErrorCodes)

Expand Down Expand Up @@ -387,7 +384,7 @@ func TestUserDevicesController_ShouldStoreErrorCodeResponse(t *testing.T) {
}()

testUserID := "123123"
c := NewUserDevicesController(&config.Settings{Port: "3000"}, pdb.DBS, &mockDeps.logger, mockDeps.deviceDefSvc, mockDeps.deviceDefIntSvc, &fakeEventService{}, mockDeps.scClient, mockDeps.scTaskSvc, mockDeps.teslaSvc, mockDeps.teslaTaskService, nil, nil, mockDeps.autoPiIngest, mockDeps.deviceDefinitionIngest, nil, nil, nil, mockDeps.openAISvc, nil, nil, nil, nil, nil, nil, nil, nil)
c := NewUserDevicesController(&config.Settings{Port: "3000"}, pdb.DBS, &mockDeps.logger, mockDeps.deviceDefSvc, mockDeps.deviceDefIntSvc, &fakeEventService{}, mockDeps.scClient, mockDeps.scTaskSvc, mockDeps.teslaTaskService, nil, nil, mockDeps.autoPiIngest, mockDeps.deviceDefinitionIngest, nil, nil, nil, mockDeps.openAISvc, nil, nil, nil, nil, nil, nil, nil, nil)
app := fiber.New()
app.Post("/user/devices/:userDeviceID/error-codes", test.AuthInjectorTestHandler(testUserID), c.QueryDeviceErrorCodes)

Expand Down Expand Up @@ -473,7 +470,7 @@ func TestUserDevicesController_GetUserDevicesErrorCodeQueries(t *testing.T) {
}()

testUserID := "123123"
c := NewUserDevicesController(&config.Settings{Port: "3000"}, pdb.DBS, &mockDeps.logger, mockDeps.deviceDefSvc, mockDeps.deviceDefIntSvc, &fakeEventService{}, mockDeps.scClient, mockDeps.scTaskSvc, mockDeps.teslaSvc, mockDeps.teslaTaskService, nil, nil, mockDeps.autoPiIngest, mockDeps.deviceDefinitionIngest, nil, nil, nil, mockDeps.openAISvc, nil, nil, nil, nil, nil, nil, nil, nil)
c := NewUserDevicesController(&config.Settings{Port: "3000"}, pdb.DBS, &mockDeps.logger, mockDeps.deviceDefSvc, mockDeps.deviceDefIntSvc, &fakeEventService{}, mockDeps.scClient, mockDeps.scTaskSvc, mockDeps.teslaTaskService, nil, nil, mockDeps.autoPiIngest, mockDeps.deviceDefinitionIngest, nil, nil, nil, mockDeps.openAISvc, nil, nil, nil, nil, nil, nil, nil, nil)
app := fiber.New()
app.Get("/user/devices/:userDeviceID/error-codes", test.AuthInjectorTestHandler(testUserID), c.GetUserDeviceErrorCodeQueries)

Expand Down Expand Up @@ -549,7 +546,7 @@ func TestUserDevicesController_ClearUserDeviceErrorCodeQuery(t *testing.T) {
}()

testUserID := "123123"
c := NewUserDevicesController(&config.Settings{Port: "3000"}, pdb.DBS, &mockDeps.logger, mockDeps.deviceDefSvc, mockDeps.deviceDefIntSvc, &fakeEventService{}, mockDeps.scClient, mockDeps.scTaskSvc, mockDeps.teslaSvc, mockDeps.teslaTaskService, nil, nil, mockDeps.autoPiIngest, mockDeps.deviceDefinitionIngest, nil, nil, nil, mockDeps.openAISvc, nil, nil, nil, nil, nil, nil, nil, nil)
c := NewUserDevicesController(&config.Settings{Port: "3000"}, pdb.DBS, &mockDeps.logger, mockDeps.deviceDefSvc, mockDeps.deviceDefIntSvc, &fakeEventService{}, mockDeps.scClient, mockDeps.scTaskSvc, mockDeps.teslaTaskService, nil, nil, mockDeps.autoPiIngest, mockDeps.deviceDefinitionIngest, nil, nil, nil, mockDeps.openAISvc, nil, nil, nil, nil, nil, nil, nil, nil)
app := fiber.New()
app.Post("/user/devices/:userDeviceID/error-codes/clear", test.AuthInjectorTestHandler(testUserID), c.ClearUserDeviceErrorCodeQuery)

Expand Down Expand Up @@ -636,7 +633,7 @@ func TestUserDevicesController_ErrorOnAllErrorCodesCleared(t *testing.T) {
}()

testUserID := "123123"
c := NewUserDevicesController(&config.Settings{Port: "3000"}, pdb.DBS, &mockDeps.logger, mockDeps.deviceDefSvc, mockDeps.deviceDefIntSvc, &fakeEventService{}, mockDeps.scClient, mockDeps.scTaskSvc, mockDeps.teslaSvc, mockDeps.teslaTaskService, nil, nil, mockDeps.autoPiIngest, mockDeps.deviceDefinitionIngest, nil, nil, nil, mockDeps.openAISvc, nil, nil, nil, nil, nil, nil, nil, nil)
c := NewUserDevicesController(&config.Settings{Port: "3000"}, pdb.DBS, &mockDeps.logger, mockDeps.deviceDefSvc, mockDeps.deviceDefIntSvc, &fakeEventService{}, mockDeps.scClient, mockDeps.scTaskSvc, mockDeps.teslaTaskService, nil, nil, mockDeps.autoPiIngest, mockDeps.deviceDefinitionIngest, nil, nil, nil, mockDeps.openAISvc, nil, nil, nil, nil, nil, nil, nil, nil)
app := fiber.New()
app.Post("/user/devices/:userDeviceID/error-codes/clear", test.AuthInjectorTestHandler(testUserID), c.ClearUserDeviceErrorCodeQuery)

Expand Down
2 changes: 0 additions & 2 deletions internal/controllers/synthetic_devices_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ type SyntheticDevicesControllerTestSuite struct {
sdc SyntheticDevicesController
syntheticDeviceSigSvc *mock_services.MockSyntheticWalletInstanceService
smartcarClient *mock_services.MockSmartcarClient
teslaService *mock_services.MockTeslaService
}

// SetupSuite starts container db
Expand All @@ -65,7 +64,6 @@ func (s *SyntheticDevicesControllerTestSuite) SetupTest() {
s.userClient = mock_services.NewMockUserServiceClient(s.mockCtrl)
s.syntheticDeviceSigSvc = mock_services.NewMockSyntheticWalletInstanceService(s.mockCtrl)
s.smartcarClient = mock_services.NewMockSmartcarClient(s.mockCtrl)
s.teslaService = mock_services.NewMockTeslaService(s.mockCtrl)

mockProducer = smock.NewSyncProducer(s.T(), nil)

Expand Down
3 changes: 0 additions & 3 deletions internal/controllers/user_devices_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ type UserDevicesController struct {
eventService services.EventService
smartcarClient services.SmartcarClient
smartcarTaskSvc services.SmartcarTaskService
teslaService services.TeslaService
teslaTaskService services.TeslaTaskService
cipher shared.Cipher
autoPiSvc services.AutoPiAPIService
Expand Down Expand Up @@ -124,7 +123,6 @@ func NewUserDevicesController(settings *config.Settings,
eventService services.EventService,
smartcarClient services.SmartcarClient,
smartcarTaskSvc services.SmartcarTaskService,
teslaService services.TeslaService,
teslaTaskService services.TeslaTaskService,
cipher shared.Cipher,
autoPiSvc services.AutoPiAPIService,
Expand Down Expand Up @@ -152,7 +150,6 @@ func NewUserDevicesController(settings *config.Settings,
eventService: eventService,
smartcarClient: smartcarClient,
smartcarTaskSvc: smartcarTaskSvc,
teslaService: teslaService,
teslaTaskService: teslaTaskService,
cipher: cipher,
autoPiSvc: autoPiSvc,
Expand Down
3 changes: 1 addition & 2 deletions internal/controllers/user_devices_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,6 @@ func (s *UserDevicesControllerTestSuite) SetupSuite() {
s.deviceDefIntSvc = mock_services.NewMockDeviceDefinitionIntegrationService(mockCtrl)
s.scClient = mock_services.NewMockSmartcarClient(mockCtrl)
s.scTaskSvc = mock_services.NewMockSmartcarTaskService(mockCtrl)
teslaSvc := mock_services.NewMockTeslaService(mockCtrl)
teslaTaskService := mock_services.NewMockTeslaTaskService(mockCtrl)
autoPiIngest := mock_services.NewMockIngestRegistrar(mockCtrl)
deviceDefinitionIngest := mock_services.NewMockDeviceDefinitionRegistrar(mockCtrl)
Expand All @@ -106,7 +105,7 @@ func (s *UserDevicesControllerTestSuite) SetupSuite() {

s.testUserID = "123123"
testUserID2 := "3232451"
c := NewUserDevicesController(&config.Settings{Port: "3000", Environment: "prod"}, s.pdb.DBS, logger, s.deviceDefSvc, s.deviceDefIntSvc, &fakeEventService{}, s.scClient, s.scTaskSvc, teslaSvc, teslaTaskService, new(shared.ROT13Cipher), s.autoPiSvc,
c := NewUserDevicesController(&config.Settings{Port: "3000", Environment: "prod"}, s.pdb.DBS, logger, s.deviceDefSvc, s.deviceDefIntSvc, &fakeEventService{}, s.scClient, s.scTaskSvc, teslaTaskService, new(shared.ROT13Cipher), s.autoPiSvc,
autoPiIngest, deviceDefinitionIngest, nil, nil, s.redisClient, nil, s.usersClient, s.deviceDataSvc, s.natsService, nil, s.userDeviceSvc, nil, nil, nil)
app := test.SetupAppFiber(*logger)
app.Post("/user/devices", test.AuthInjectorTestHandler(s.testUserID), c.RegisterDeviceForUser)
Expand Down
94 changes: 35 additions & 59 deletions internal/controllers/user_integrations_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -1175,51 +1175,47 @@ func (udc *UserDevicesController) registerDeviceTesla(c *fiber.Ctx, logger *zero
return fiber.NewError(fiber.StatusBadRequest, "Couldn't parse request body.")
}

// Flag for which api version should be used
apiVersion := constants.TeslaAPIV1
if reqBody.Version != 0 {
apiVersion = reqBody.Version
}

if reqBody.ExternalID == "" {
return fiber.NewError(fiber.StatusBadRequest, "Missing externalId field.")
}

if reqBody.AccessToken != "" {
return fiber.NewError(fiber.StatusBadRequest, "We no longer support connecting Teslas by submitting access and refresh tokens. Please submit an authorization code for the Fleet API.")
}

// We'll use this to kick off the job
teslaID, err := strconv.Atoi(reqBody.ExternalID)
if err != nil {
return fiber.NewError(fiber.StatusBadRequest, fmt.Sprintf("Couldn't parse externalId %q as an integer.", teslaID))
}

if apiVersion == constants.TeslaAPIV2 { // If version is 2, we are using fleet api which has token stored in cache
userAddr, hasAddr, err := udc.userAddrGetter.GetEthAddr(c)
if err != nil {
return fiber.NewError(fiber.StatusInternalServerError, "Couldn't retrieve user Ethereum address.")
}
if !hasAddr {
return fiber.NewError(fiber.StatusBadRequest, "No Ethereum address for user.")
}
userAddr, hasAddr, err := udc.userAddrGetter.GetEthAddr(c)
if err != nil {
return fiber.NewError(fiber.StatusInternalServerError, "Couldn't retrieve user Ethereum address.")
}
if !hasAddr {
return fiber.NewError(fiber.StatusBadRequest, "No Ethereum address for user.")
}

// Yes, yes.
store := &tmpcred.Store{
Redis: udc.redisCache,
Cipher: udc.cipher,
}
// Yes, yes.
store := &tmpcred.Store{
Redis: udc.redisCache,
Cipher: udc.cipher,
}

cred, err := store.Retrieve(c.Context(), userAddr)
if err != nil {
if errors.Is(err, tmpcred.ErrNotFound) {
return fiber.NewError(fiber.StatusBadRequest, "No credentials found for user.")
}
return err
cred, err := store.Retrieve(c.Context(), userAddr)
if err != nil {
if errors.Is(err, tmpcred.ErrNotFound) {
return fiber.NewError(fiber.StatusBadRequest, "No credentials found for user.")
}

reqBody.RefreshToken = cred.RefreshToken
reqBody.AccessToken = cred.AccessToken
reqBody.ExpiresIn = int(time.Until(cred.Expiry).Seconds())
return err
}

v, err := udc.getTeslaVehicle(c.Context(), reqBody.AccessToken, teslaID, apiVersion)
reqBody.RefreshToken = cred.RefreshToken
reqBody.AccessToken = cred.AccessToken
reqBody.ExpiresIn = int(time.Until(cred.Expiry).Seconds())

v, err := udc.getTeslaVehicle(c.Context(), reqBody.AccessToken, teslaID)
if err != nil {
return fiber.NewError(fiber.StatusBadRequest, "Couldn't retrieve vehicle from Tesla.")
}
Expand Down Expand Up @@ -1258,20 +1254,14 @@ func (udc *UserDevicesController) registerDeviceTesla(c *fiber.Ctx, logger *zero
return err
}

var commands *services.UserDeviceAPIIntegrationsMetadataCommands
if apiVersion == constants.TeslaAPIV2 {
var err error
commands, err = udc.teslaFleetAPISvc.GetAvailableCommands(reqBody.AccessToken)
if err != nil {
return fiber.NewError(fiber.StatusBadRequest, "Couldn't determine available commands.")
}
} else {
commands = udc.teslaService.GetAvailableCommands()
commands, err := udc.teslaFleetAPISvc.GetAvailableCommands(reqBody.AccessToken)
if err != nil {
return fiber.NewError(fiber.StatusBadRequest, "Couldn't determine available commands.")
}

meta := services.UserDeviceAPIIntegrationsMetadata{
Commands: commands,
TeslaAPIVersion: apiVersion,
TeslaAPIVersion: constants.TeslaAPIV2,
TeslaVehicleID: v.VehicleID,
}

Expand Down Expand Up @@ -1305,7 +1295,7 @@ func (udc *UserDevicesController) registerDeviceTesla(c *fiber.Ctx, logger *zero
return err
}

if err := udc.wakeupTeslaVehicle(c.Context(), reqBody.AccessToken, teslaID, apiVersion); err != nil {
if err := udc.wakeupTeslaVehicle(c.Context(), reqBody.AccessToken, teslaID); err != nil {
logger.Err(err).Msg("Couldn't wake up Tesla.")
}

Expand All @@ -1327,26 +1317,12 @@ func (udc *UserDevicesController) registerDeviceTesla(c *fiber.Ctx, logger *zero
return c.SendStatus(fiber.StatusNoContent)
}

func (udc *UserDevicesController) wakeupTeslaVehicle(ctx context.Context, token string, vehicleID, version int) error {
var err error
if version == constants.TeslaAPIV2 {
err = udc.teslaFleetAPISvc.WakeUpVehicle(ctx, token, vehicleID)
} else {
err = udc.teslaService.WakeUpVehicle(token, vehicleID)
}
return err
func (udc *UserDevicesController) wakeupTeslaVehicle(ctx context.Context, token string, vehicleID int) error {
return udc.teslaFleetAPISvc.WakeUpVehicle(ctx, token, vehicleID)
}

func (udc *UserDevicesController) getTeslaVehicle(ctx context.Context, token string, vehicleID, version int) (*services.TeslaVehicle, error) {
var vehicle *services.TeslaVehicle
var err error
if version == constants.TeslaAPIV2 {
vehicle, err = udc.teslaFleetAPISvc.GetVehicle(ctx, token, vehicleID)
} else {
vehicle, err = udc.teslaService.GetVehicle(token, vehicleID)
}

return vehicle, err
func (udc *UserDevicesController) getTeslaVehicle(ctx context.Context, token string, vehicleID int) (*services.TeslaVehicle, error) {
return udc.teslaFleetAPISvc.GetVehicle(ctx, token, vehicleID)
}

// fixTeslaDeviceDefinition tries to use the VIN provided by Tesla to correct the device definition
Expand Down
Loading
Loading