@remscodes/ngx-renault-api-client
v1.1.1
Published
Angular http client using Renault API
Downloads
3
Readme
Installation
npm install @remscodes/ngx-renault-api-client
Usage
// app.config.ts
import { ApplicationConfig } from '@angular/core';
import { provideRenaultClient } from '@remscodes/ngx-renault-api-client';
export const appConfig: ApplicationConfig = {
providers: [provideRenaultClient()],
};
// app.component.ts
import { Component, DestroyRef, inject } from '@angular/core';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { NgxGigyaClient, NgxKamereonClient, NgxRenaultSession } from '@remscodes/ngx-renault-api-client';
import { concatMap } from 'rxjs';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrl: './app.component.css',
standalone: true,
imports: [],
})
export class AppComponent {
private gigya = inject(NgxGigyaClient);
private kamereon = inject(NgxKamereonClient);
private session = inject(NgxRenaultSession);
private destroyRef = inject(DestroyRef);
// (1) Login to gigya service
login(): void {
// will store automatically `gigyaToken` into session.
this.gigya.login('myLogin', 'myPassword')
.pipe(
// will store automatically `personId` into session
concatMap(() => this.gigya.getAccountInfo()),
// will store automatically `token` into session
concatMap(() => this.gigya.getJwt()),
takeUntilDestroyed(this.destroyRef),
)
.subscribe({
next: () => console.info('Logged in.'),
});
}
// (2) Get user's accounts
getAccounts(): void {
this.kamereon.getPerson()
.pipe(takeUntilDestroyed(this.destroyRef))
.subscribe({
next: ({ accounts }) => {
// Select the accountId you want
this.session.accountId = accounts[0].accountId;
},
});
}
// (3) Get account's vehicles
getVehicles(): void {
this.kamereon.getAccountVehicles()
.pipe(takeUntilDestroyed(this.destroyRef))
.subscribe({
next: ({ vehicleLinks }) => {
// Select the vin you want
this.session.vin = vehicleLinks[0].vin;
},
});
}
// (4) Get current battery status
getBatteryStatus(): void {
this.kamereon.readBatteryStatus()
.pipe(takeUntilDestroyed(this.destroyRef))
.subscribe({
next: (batteryStatus) => {
// handle battery status
},
});
}
// (5) Invalidate the gigya token (stored in session)
logout(): void {
this.gigya.logout()
.pipe(takeUntilDestroyed(this.destroyRef))
.subscribe({
next: () => console.info('Logged out.'),
});
}
}
Examples
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.