From ba17cde59bed5fbe885b069e79ef5c58deb153d7 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Tue, 19 Sep 2023 18:09:11 +0200 Subject: [PATCH] feat(smartcard): Add get ev battery level integration --- .../actions/get-ev-battery-level/index.ts | 36 +++++++++++++++++++ .../src/apps/smartcar/actions/index.ts | 3 +- .../apps/smartcar/auth/generate-auth-url.ts | 3 +- 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 packages/backend/src/apps/smartcar/actions/get-ev-battery-level/index.ts diff --git a/packages/backend/src/apps/smartcar/actions/get-ev-battery-level/index.ts b/packages/backend/src/apps/smartcar/actions/get-ev-battery-level/index.ts new file mode 100644 index 00000000..d3d47508 --- /dev/null +++ b/packages/backend/src/apps/smartcar/actions/get-ev-battery-level/index.ts @@ -0,0 +1,36 @@ +import defineAction from '../../../../helpers/define-action'; + +export default defineAction({ + name: 'Get EV Battery Level', + key: 'getEvBatteryLevel', + description: 'Get the battery level of an electric vehicle.', + arguments: [ + { + label: 'Vehicle', + key: 'vehicle', + type: 'dropdown' as const, + required: true, + description: 'The vehicle to get the location of.', + variables: true, + source: { + type: 'query', + name: 'getDynamicData', + arguments: [ + { + name: 'key', + value: 'listVehicles', + }, + ], + }, + }, + ], + + async run($) { + const { vehicle } = $.step.parameters; + const response = await $.http.get( + `/vehicles/${vehicle}/battery?mode=simulated` + ); + + $.setActionItem({ raw: response.data }); + }, +}); diff --git a/packages/backend/src/apps/smartcar/actions/index.ts b/packages/backend/src/apps/smartcar/actions/index.ts index 73a09721..f44886ab 100644 --- a/packages/backend/src/apps/smartcar/actions/index.ts +++ b/packages/backend/src/apps/smartcar/actions/index.ts @@ -1,3 +1,4 @@ import getVehicleLocation from './get-vehicle-location'; +import getEvBatteryLevel from './get-ev-battery-level'; -export default [getVehicleLocation]; +export default [getVehicleLocation, getEvBatteryLevel]; diff --git a/packages/backend/src/apps/smartcar/auth/generate-auth-url.ts b/packages/backend/src/apps/smartcar/auth/generate-auth-url.ts index 01c2825e..44436813 100644 --- a/packages/backend/src/apps/smartcar/auth/generate-auth-url.ts +++ b/packages/backend/src/apps/smartcar/auth/generate-auth-url.ts @@ -4,8 +4,9 @@ import { URLSearchParams } from 'url'; export default async function generateAuthUrl($: IGlobalVariable) { const scopes = [ 'read_odometer', - 'read_vehicle_info', + 'required:read_vehicle_info', 'required:read_location', + 'required:read_battery', ]; const oauthRedirectUrlField = $.app.auth.fields.find(