feat(high-mobility): Introduce get vehicle location action
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import { TBeforeRequest } from '@automatisch/types';
|
||||
import jwt from 'jsonwebtoken';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
|
||||
const addAuthHeader: TBeforeRequest = ($, requestConfig) => {
|
||||
const { accessToken } = $.auth.data;
|
||||
const { url } = requestConfig;
|
||||
|
||||
if (accessToken && url === '/v1/vehicleinfo') {
|
||||
requestConfig.headers.Authorization = `Bearer ${accessToken}`;
|
||||
return requestConfig;
|
||||
}
|
||||
|
||||
const config = {
|
||||
version: '3.0',
|
||||
type: 'rest_api',
|
||||
private_key: ($.auth.data.privateKey as string).replaceAll('\\n', '\n'),
|
||||
app_uri: 'https://sandbox.rest-api.high-mobility.com/v5',
|
||||
app_id: $.auth.data.appId as string,
|
||||
client_serial_number: $.auth.data.clientSerialNumber as string,
|
||||
};
|
||||
|
||||
const payload = {
|
||||
ver: config.version,
|
||||
aud: config.app_uri,
|
||||
iss: config.client_serial_number,
|
||||
iat: Math.round(Date.now() / 1000),
|
||||
jti: uuidv4(),
|
||||
sub: $.auth.data.accessToken,
|
||||
};
|
||||
|
||||
const priv = Buffer.from(config.private_key, 'utf8');
|
||||
|
||||
const token = jwt.sign(payload, priv, { algorithm: 'ES256' });
|
||||
|
||||
requestConfig.headers.Authorization = `Bearer ${token}`;
|
||||
|
||||
return requestConfig;
|
||||
};
|
||||
|
||||
export default addAuthHeader;
|
Reference in New Issue
Block a user