UNPKG

portone-api-v2

Version:
74 lines 2.46 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.PortOneClient = void 0; const axios_1 = __importDefault(require("axios")); const qs_1 = __importDefault(require("qs")); const lodash_1 = __importDefault(require("lodash")); const constants_1 = require("./constants"); const jwt_1 = require("./utils/jwt"); class PortOneClient { baseUrl; apiSecret; apiInstance; token; constructor({ apiSecret, axiosConfig }) { this.apiSecret = apiSecret; this.baseUrl = axiosConfig?.baseURL || constants_1.CONSTANT.BASE_URL; this.token = { accessToken: '', refreshToken: '', }; this.apiInstance = axios_1.default.create({ paramsSerializer: params => qs_1.default.stringify(params, { arrayFormat: 'brackets' }), ...axiosConfig, baseURL: this.baseUrl, }); } getApiInstance() { return this.apiInstance; } async setAuthorization() { const isValid = await this.verifyToken(); return isValid ? { Authorization: `Bearer ${this.token.accessToken}`, } : { Authorization: `PortOne ${this.apiSecret}`, }; } async verifyToken() { try { const { accessToken, refreshToken } = this.token; if (jwt_1.Jwt.isValid(accessToken)) return true; if (jwt_1.Jwt.isValid(refreshToken)) { const { data } = await this.refreshToken(); this.token = lodash_1.default.assign({}, data); return true; } const { data } = await this.issueToken(); this.token = lodash_1.default.assign({}, data); return true; } catch (error) { console.error(error); return false; } } async issueToken() { const data = { apiSecret: this.apiSecret, }; return axios_1.default.post(`${this.baseUrl}/login/api-secret`, data); } async refreshToken() { const data = { refreshToken: this.token.refreshToken, }; return axios_1.default.post(`${this.baseUrl}/token/refresh`, data); } } exports.PortOneClient = PortOneClient; //# sourceMappingURL=client.js.map