1.1.1 • Published 4 months ago

@remscodes/renault-api-client v1.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

github ci npm version bundle size license

Installation

npm install @remscodes/renault-api-client

Usage

Example

import { RenaultClient } from '@remscodes/renault-api-client';

// Instantiate new Renault http client
const renault = new RenaultClient();

// Use Gigya and Kamereon sub http client.
const { gigya, kamereon } = renault;

// Login to Gigya service and get auth info (to be automatically stored into session).  
await gigya.login('myLogin', 'myPassword');
await gigya.getAccountInfo();
await gigya.getJwt();

// Get the proper `accountId` and store it into session.
const { accounts } = await kamereon.getPerson();
const accountId = accounts.find(acc => acc.accountType === 'MYRENAULT');

renault.session.accountId = accountId;

// Get the vehicle `vin` and store it into session.
const vehicles = await kamereon.getAccountVehicles();
const { vin } = vehicles.vehicleLinks[0];

renault.session.vin = vin;

// Get vehicle info. 
const batteryStatus = await kamereon.readBatteryStatus();

Session

Authentication info are stored in RenaultSession instance.

const renault = new RenaultClient();
const session = renault.session;
class RenaultSession {
  // Locale that will be used to format date.
  // default: "fr_FR"
  locale: string;

  // Country code that will use as http param for Kamereon.
  // default: "FR"
  country: string;

  // Token to use Gigya getJWT API.
  // Automatically set when Gigya login API is called and succeed.
  gigyaToken: string | undefined;

  // Token to use Kamereon API.
  // Automatically set when Gigya getJWT API is called and succeed.
  token: string | undefined;

  // Selected person id.
  // Automatically set when Gigya getAccountInfo API is called and succeed.
  personId: string | undefined;

  // Selected account id.
  // To be set in order to be automatically passed into each Kamereon API functions that needs it.
  // Otherwise, it needs to be manually passed as function argument using `KamereonClient`.
  accountId: string | undefined;

  // Selected vehicle vin.
  // To be set in order to be automatically passed into each Kamereon API functions that needs it.
  // Otherwise, it needs to be manually passed as function argument using `KamereonClient`.
  vin: string | undefined;
}

Error intercepting

You can intercept response error by passing onError callback into client constructor.

Example :

const renault = new RenaultClient({
  onError: ({ status, url, error }, session) => {
    if (status === 401) {
      session.token = undefined;
      myService.clearToken();
      myService.navigateToLogin();
    }
    else {
      console.error(`Error ${status} from ${url} : ${error}`);
    }
  },
});

Disclaimer

This project is not affiliated with, endorsed by, or connected to Renault. I accept no responsibility for any consequences, intentional or accidental, resulting from interaction with the Renault's API using this project.

Credit

Resources API based on @remscodes/renault-api.

License

MIT © Rémy Abitbol.

1.1.1

4 months ago

1.1.0

5 months ago

1.0.1

6 months ago

1.0.0

6 months ago