@qualiture/tesla-api
Version:
An unofficial library that wraps the Tesla Owner's API
48 lines (47 loc) • 1.65 kB
JavaScript
;
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;