@suin/esa-api
Version:
esa.io APIクライアント
83 lines • 3.32 kB
JavaScript
;
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(/#/g, "#").replace(///g, "/");
}
function encodeSharpsAndSlashes(name) {
return name.replace(/#/g, "#").replace(/\//g, "/");
}
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