UNPKG

@qualiture/tesla-api

Version:

An unofficial library that wraps the Tesla Owner's API

48 lines (47 loc) 1.65 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const axios_1 = __importDefault(require("axios")); const constants_1 = require("./constants"); class Authorization { refreshToken = ""; accessToken = ""; accessTokenExpiresIn = 0; constructor(accessToken) { if (accessToken) { this.accessToken = accessToken; } } getRefreshedAccessToken(refreshToken) { const body = { grant_type: constants_1.Constants.REFRESH_TOKEN.REQUEST_BODY.GRANT_TYPE, client_id: constants_1.Constants.REFRESH_TOKEN.REQUEST_BODY.CLIENT_ID, scope: constants_1.Constants.REFRESH_TOKEN.REQUEST_BODY.SCOPE, refresh_token: refreshToken }; return new Promise((resolve, reject) => { axios_1.default.post(constants_1.Constants.REFRESH_TOKEN.ENDPOINT, body) .then((response) => { const data = response.data; this.accessToken = data.access_token; this.accessTokenExpiresIn = data.expires_in; resolve(data); }).catch((err) => { reject(err.response?.data); }); }); } // #region Getters / Setters getAccessToken() { return this.accessToken; } setAccessToken(accessToken) { this.accessToken = accessToken; } getAccessTokenExpiresIn() { return this.accessTokenExpiresIn; } } exports.default = Authorization;