UNPKG

ev-recharge-sdk

Version:

This API Product provides the option to manage charging at all public Shell Recharge locations. The end points provides control to start, stop and get status of the charging session.

206 lines (200 loc) 8.93 kB
/** * Shell EVLib * * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). */ import { ApiResponse, RequestOptions } from '../core'; import { ActiveResponse200Json, activeResponse200JsonSchema, } from '../models/activeResponse200Json'; import { ChargesessionStartBody, chargesessionStartBodySchema, } from '../models/chargesessionStartBody'; import { GetChargeSessionRetrieveResponse200Json, getChargeSessionRetrieveResponse200JsonSchema, } from '../models/getChargeSessionRetrieveResponse200Json'; import { InlineResponse202, inlineResponse202Schema, } from '../models/inlineResponse202'; import { InlineResponse2021, inlineResponse2021Schema, } from '../models/inlineResponse2021'; import { optional, string } from '../schema'; import { BaseController } from './baseController'; import { BadRequestError } from '../errors/badRequestError'; import { InternalServerError } from '../errors/internalServerError'; import { NotFoundError } from '../errors/notFoundError'; import { ServiceunavailableError } from '../errors/serviceunavailableError'; import { TooManyRequestsError } from '../errors/tooManyRequestsError'; import { UnauthorizedError } from '../errors/unauthorizedError'; export class ChargingController extends BaseController { /** * This endpoint start the charging session for the user. * * @param requestId RequestId must be unique identifier value that can be used * by the consumer to correlate each request /response . * <br>Format.<br> Its canonical textual representation, the 16 * octets of a UUID are represented as 32 hexadecimal (base-16) * digits, displayed in five groups separated by hyphens, in the * form 8-4-4-4-12 for a total of 36 characters (32 hexadecimal * characters and 4 hyphens) <br> * @param body * @return Response from the API call */ async start( requestId: string, body?: ChargesessionStartBody, requestOptions?: RequestOptions ): Promise<ApiResponse<InlineResponse202>> { const req = this.createRequest('POST', '/charge-session/start'); const mapped = req.prepareArgs({ requestId: [requestId, string()], body: [body, optional(chargesessionStartBodySchema)], }); req.header('RequestId', mapped.requestId); req.header('Content-Type', 'application/json'); req.json(mapped.body); req.throwOn( 400, BadRequestError, 'The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).' ); req.throwOn( 401, UnauthorizedError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.' ); req.throwOn(404, NotFoundError, 'Location Not Found'); req.throwOn( 429, TooManyRequestsError, 'The Request reached maximum allocated rate limit' ); req.throwOn(500, InternalServerError, 'Internal Server error'); req.throwOn(503, ServiceunavailableError, 'Service unavailable'); req.authenticate([{ bearerAuth: true }]); return req.callAsJson(inlineResponse202Schema, requestOptions); } /** * Accepts a request to stop an active session when a valid session id is provided. * * @param requestId RequestId must be unique identifier value that can be used by the consumer to * correlate each request /response .<br>Format.<br> Its canonical textual representation, * the 16 octets of a UUID are represented as 32 hexadecimal (base-16) digits, displayed * in five groups separated by hyphens, in the form 8-4-4-4-12 for a total of 36 * characters (32 hexadecimal characters and 4 hyphens) <br> * @param sessionId Session Id * @return Response from the API call */ async stop( requestId: string, sessionId: string, requestOptions?: RequestOptions ): Promise<ApiResponse<InlineResponse2021>> { const req = this.createRequest('POST', '/charge-session/stop'); const mapped = req.prepareArgs({ requestId: [requestId, string()], sessionId: [sessionId, string()], }); req.header('RequestId', mapped.requestId); req.query('sessionId', mapped.sessionId); req.throwOn( 400, BadRequestError, 'The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).' ); req.throwOn( 401, UnauthorizedError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.' ); req.throwOn(404, NotFoundError, 'Location Not Found'); req.throwOn( 429, TooManyRequestsError, 'The Request reached maximum allocated rate limit' ); req.throwOn(500, InternalServerError, 'Internal Server error'); req.throwOn(503, ServiceunavailableError, 'Service unavailable'); req.authenticate([{ bearerAuth: true }]); return req.callAsJson(inlineResponse2021Schema, requestOptions); } /** * This endpoint returns the details of the session if the session is found. * * @param requestId RequestId must be unique identifier value that can be used by the consumer to * correlate each request /response .<br>Format.<br> Its canonical textual representation, * the 16 octets of a UUID are represented as 32 hexadecimal (base-16) digits, displayed * in five groups separated by hyphens, in the form 8-4-4-4-12 for a total of 36 * characters (32 hexadecimal characters and 4 hyphens) <br> * @param sessionId Session Id * @return Response from the API call */ async getChargeSessionRetrieve( requestId: string, sessionId: string, requestOptions?: RequestOptions ): Promise<ApiResponse<GetChargeSessionRetrieveResponse200Json>> { const req = this.createRequest('GET', '/charge-session/retrieve'); const mapped = req.prepareArgs({ requestId: [requestId, string()], sessionId: [sessionId, string()], }); req.header('RequestId', mapped.requestId); req.query('sessionId', mapped.sessionId); req.throwOn( 400, BadRequestError, 'The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).' ); req.throwOn( 401, UnauthorizedError, 'The request has not been applied because it lacks valid authentication credentials for the target resource.' ); req.throwOn(404, NotFoundError, 'Location Not Found'); req.throwOn( 429, TooManyRequestsError, 'The Request reached maximum allocated rate limit' ); req.throwOn(500, InternalServerError, 'Internal Server error'); req.throwOn(503, ServiceunavailableError, 'Service unavailable'); req.authenticate([{ bearerAuth: true }]); return req.callAsJson( getChargeSessionRetrieveResponse200JsonSchema, requestOptions ); } /** * Fetrches the active sessions for user. * * @param requestId RequestId must be unique identifier value that can be used by the consumer to * correlate each request /response .<br>Format.<br> Its canonical textual representation, * the 16 octets of a UUID are represented as 32 hexadecimal (base-16) digits, displayed * in five groups separated by hyphens, in the form 8-4-4-4-12 for a total of 36 * characters (32 hexadecimal characters and 4 hyphens) <br> * @param emaId Emobility Account Identifier(Ema-ID) * @return Response from the API call */ async active( requestId: string, emaId: string, requestOptions?: RequestOptions ): Promise<ApiResponse<ActiveResponse200Json>> { const req = this.createRequest('GET', '/charge-session/active'); const mapped = req.prepareArgs({ requestId: [requestId, string()], emaId: [emaId, string()], }); req.header('RequestId', mapped.requestId); req.query('emaId', mapped.emaId); req.authenticate([{ bearerAuth: true }]); return req.callAsJson(activeResponse200JsonSchema, requestOptions); } }