import axios, { AxiosRequestConfig } from 'axios'; export const errorCodes = new Map(); errorCodes.set(414, 'INVALID_URL'); errorCodes.set(413, 'INVALID_DATA'); errorCodes.set(400, 'INVALID_HEADER'); errorCodes.set(405, 'INVALID_METHOD'); // errorCodes.set(504, 'NOT_REACHABLE'); // errorCodes.set(408, 'TIME_OUT'); errorCodes.set(502, 'INVALID_RESPONSE'); export type Method = 'GET' | 'DELETE' | 'POST' | 'PATCH' | 'PUT'; export const getRequest = (params: AxiosRequestConfig) => { switch (params.method) { case 'GET': default: return axios({ method: params.method, url: '/request/' + params.url, headers: params.headers, params: params.params, }); case 'POST': case 'PUT': case 'PATCH': case 'DELETE': if (params.headers['content-type'] === 'multipart/form-data') { let formdata = new FormData(); Object.entries(params.params).forEach((entry) => { formdata.append(entry[0], entry[1] as string); }); params.params = formdata; params.headers['content-type'] = 'application/x-www-form-urlencoded'; } return axios({ method: params.method, url: '/request/' + params.url, headers: params.headers, data: params.params, }); } }; export const getHost = (endpointType: string, environment: string) => { switch (endpointType) { case 'bff': default: switch (environment) { case 'stg': default: return 'https://stg-app3.paypay-corp.co.jp'; case 'dev': return 'https://dev2.baymax.jp'; case 'prd': return 'https://app3.paypay.ne.jp'; } case 'gff': switch (environment) { case 'stg': default: return 'https://stg.paypay-corp.co.jp'; case 'dev': return 'https://dev2.baymax.jp'; case 'prd': return 'https://app.paypay.ne.jp'; } } };