UNPKG

@suin/esa-api

Version:

esa.io APIクライアント

83 lines 3.32 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createClient = void 0; const axios_1 = __importDefault(require("axios")); const client_1 = require("./client"); const ratelimit_1 = require("./ratelimit"); __exportStar(require("./client"), exports); function createClient({ token }) { return new Client({ token }); } exports.createClient = createClient; class Client extends client_1.EsaApi { constructor({ token }) { const axiosInstance = axios_1.default.create(); axiosInstance.interceptors.response.use(ratelimit_1.setRatelimit, ratelimit_1.setRatelimit); super(new client_1.Configuration({ accessToken: token }), undefined, axiosInstance); } get axiosInstance() { return this.axios; } getPosts(requestParameters, options) { return super.getPosts(requestParameters, options).then((res) => { if (res.status === 200) { for (const posts of res.data.posts) { posts.name = decodeSharpsAndSlashes(posts.name); } } return res; }); } getPost(requestParameters, options) { return super.getPost(requestParameters, options).then(decodeName); } createPost(requestParameters, options) { const param = "post" in requestParameters ? { teamName: requestParameters.teamName, createPostBody: { post: requestParameters.post }, } : requestParameters; param.createPostBody.post.name = encodeSharpsAndSlashes(param.createPostBody.post.name); return super.createPost(param, options).then(decodeName); } updatePost(requestParameters, options) { if (requestParameters.updatePostBody.post.name) { requestParameters.updatePostBody.post.name = encodeSharpsAndSlashes(requestParameters.updatePostBody.post.name); } return super.updatePost(requestParameters, options).then(decodeName); } } function decodeSharpsAndSlashes(name) { return name.replace(/&#35;/g, "#").replace(/&#47;/g, "/"); } function encodeSharpsAndSlashes(name) { return name.replace(/#/g, "&#35;").replace(/\//g, "&#47;"); } function decodeName(res) { if (res.status < 200 || res.status >= 300) { return res; } if (typeof res.data.name === "string") { res.data.name = decodeSharpsAndSlashes(res.data.name); } return res; } //# sourceMappingURL=index.js.map