Files
nice-app-web/src/shared/api/urls.ts
2025-09-11 18:04:29 +09:00

337 lines
11 KiB
TypeScript

import { businessMemberInfo } from '@/entities/business-member/api/use-business-member-info-mutation';
import {
API_BASE_URL,
API_URL_KEY,
API_PARAM
} from './../constants/url';
// all api URL
export const API_URL = {
/* AUTH */
login: () => {
// AUTH-API-001
return `${API_BASE_URL}/auth/v1/${API_URL_KEY}/login`;
},
delegatedLogin: () => {
// AUTH-API-002
return `${API_BASE_URL}/auth/v1/${API_URL_KEY}/delegated-login`;
},
delegatedLoginAuthentication: () => {
// AUTH-API-003
return `${API_BASE_URL}/auth/v1/${API_URL_KEY}/delegated-login/authentication`;
},
logout: () => {
// AUTH-API-004
return `${API_BASE_URL}/auth/v1/${API_URL_KEY}/logout`;
},
refresh: () => {
// AUTH-API-005
return `${API_BASE_URL}/auth/v1/${API_URL_KEY}/refresh`;
},
verify: () => {
// AUTH-API-006
return `${API_BASE_URL}/auth/v1/${API_URL_KEY}/verify`;
},
emailSend: () => {
// AUTH-API-007
return `${API_BASE_URL}/auth/v1/${API_URL_KEY}/email/send`;
},
emailVerify: () => {
// AUTH-API-008
return `${API_BASE_URL}/auth/v1/${API_URL_KEY}/email/verify`;
},
phoneSend: () => {
// AUTH-API-009
return `${API_BASE_URL}/auth/v1/${API_URL_KEY}/phone/send`;
},
phoneVerify: () => {
// AUTH-API-010
return `${API_BASE_URL}/auth/v1/${API_URL_KEY}/phone/verify`;
},
fidoRegisterBegin: () => {
// AUTH-API-011
return `${API_BASE_URL}/auth/v1/${API_URL_KEY}/fido/register/begin`;
},
fidoRegisterComplete: () => {
// AUTH-API-012
return `${API_BASE_URL}/auth/v1/${API_URL_KEY}/fido/register/complete`;
},
fidoLoginBegin: () => {
// AUTH-API-013
return `${API_BASE_URL}/auth/v1/${API_URL_KEY}/fido/login/begin`;
},
fidoLoginComplete: () => {
// AUTH-API-014
return `${API_BASE_URL}/auth/v1/${API_URL_KEY}/fido/login/complete`;
},
/* Code Management 코드 관리 API */
codesSelect: () => {
// GET: 전체 코드 조회 (캐시)
// POST: 조건별 코드 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/codes/select`;
},
codesListByCodeCl: (codeCl: string) => {
// GET: 특정 CodelCl 코드 리스트 조회 (캐시);
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/codes/list/${codeCl}`;
},
codesGroupByCodeCl: (codeCl: string) => {
// GET: 특정 CodeCl 그룹 조회 (캐시)
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/codes/group/${codeCl}`;
},
codesCacheStatus: () => {
// GET: 캐시 상태 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/codes/cache/status`;
},
codesCacheRefresh: () => {
// POST: 전체 캐시 갱신
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/codes/cache/refresh`;
},
codesCacheRefreshByCodelCl: (codeCl: string) => {
// POST: 특정 CodeCl 캐시 갱신
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/codes/cache/refresh/${codeCl}`;
},
/* transaction Management - 거래관리 API */
allTransactionList: () => {
// POST: 거래 내역 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/list`;
},
allTransactionListSummary: () => {
// POST: 거래 내역 합계 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/list/summary`;
},
downloadExcel: () => {
// POST: 거래 엑셀 다운로드
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/download/excel`;
},
downloadConfirmation: () => {
// POST: 거래 확인서 다운로드
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/download/confirmation`;
},
allTransactionDetail: () => {
// POST: 거래내역 상세
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/detail`;
},
allTransactionCancel: () => {
// POST: 거래취소 요청
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/cancel`;
},
allTransactionCancelInfo: () => {
// POST: 거래취소 정보 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/cancel-info`;
},
/* Cash Receipt Management - 현금영수증 API */
cashReceiptList: () => {
// POST: 현금영수증 목록 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/cash-receipt/list`;
},
cashReceiptDetail: () => {
// POST: 현금영수증 상세 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/cash-receipt/detail`;
},
cashReceiptPurposeUpdate: () => {
// POST: 현금영수증 용도 변경
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/cash-receipt/purpose/update`;
},
cashReceiptManualIssue: () => {
// POST: 현금영수증 용도 변경
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/cash-receipt/manual/issue`;
},
/* Escro Management - 에스크로 API */
escrowList: () => {
// POST: 에스크로 목록 조회
return `${API_BASE_URL}/api/v1/escrows/list`;
},
escrowDetail: () => {
// POST: 에스크로 목록 상세 조회
return `${API_BASE_URL}/api/v1/escrows/detail`;
},
escrowMailResend: () => {
// POST: 에스크로 메일 재발송
return `${API_BASE_URL}/api/v1/escrows/mail/resend`;
},
/* Billing Management - 빌링 API */
billingList: () => {
// POST: 빌링 목록 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/billing/list`;
},
billingDetail: () => {
// POST: 빌링 상세 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/billing/detail`;
},
billingCharge: () => {
// POST: 빌링 결제 신청
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/billing/charge`;
},
settlementList: () => {
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/list`;
},
businessMemberInfo: () => {
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/detail`;
},
/* User Management - 사용자 관리 API */
userExistsUserid: () => {
// 중복 사용자 ID 확인
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/user/exists/userid`;
},
userCreate: () => {
// 사용자 추가
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/user/create`;
},
/* Counsel Management - 문의상담 API */
qnaList: () => {
// POST: 1:1 문의 목록 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/counsel/list`;
},
qnaSave: () => {
// POST: 1:1 문의 등록
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/counsel/save`;
},
/* FAQ Management - FAQ(자주 묻는 질문) API */
faqList: () => {
// POST: FAQ 목록 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/faq/list`;
},
/* Notice Management - 공지사항 API */
noticeList: () => {
// POST: 공지사항 목록 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/notice/list`;
},
noticeDetail: () => {
// POST: 공지사항 목록 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/notice/detail`;
},
/* Extension Management - 부가서비스 API */
extensionSmsResend: () => {
// POST: SMS 결제 통보 > SMS 재발송
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/sms/resend`;
},
extensionSmsList: () => {
// POST: SMS 결제 통보 목록 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/sms/list`;
},
extensionSmsDownloadExcel: () => {
// POST: SMS 결제 통보 엑셀 다운
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/sms/download/excel`;
},
extensionSmsDetail: () => {
// POST: SMS 결제 통보 상세 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/sms/detail`;
},
extensionList: () => {
// POST: 부가서비스 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/list`;
},
extensionKeyinList: () => {
// POST: KEY-IN 결제 목록 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/keyin/list`;
},
extensionKeyinDownloadExcel: () => {
// POST: KEY-IN 결제 엑셀 다운
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/keyin/download/excel`;
},
extensionKeyinApply: () => {
// POST: KEY-IN 결제 > 결제 신청
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/keyin/apply`;
},
extensionArsResend: () => {
// POST: SMS 신용카드 ARS 결제 > SMS 재전송
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/ars/resend`;
},
extensionArsList: () => {
// POST: 신용카드 ARS 결제 > 목록 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/ars/list`;
},
extensionArsDownloadExcel: () => {
// POST: 신용카드 ARS 결제 > 엑셀 다운
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/ars/download/excel`;
},
extensionArsDetail: () => {
// POST: 신용카드 ARS 결제 > 상세 내용 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/ars/detail`;
},
extensionArsApply: () => {
// POST: 신용카드 ARS 결제 > 결제 신청
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/ars/apply`;
},
extensionAlimtalkSettingSave: () => {
// POST: 알림톡 결제 통보 > 서비스 설정 저장
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/alimtalk/setting/save`;
},
extensionAlimtalkSettingDetail: () => {
// POST: 알림톡 결제 통보 > 서비스 설정 목록 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/alimtalk/setting/detail`;
},
extensionAlimtalkList: () => {
// POST: 알림톡 결제 통보 목록 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/alimtalk/list`;
},
extensionAlimtalkDownloadExcel: () => {
// POST: 알림톡 결제 통보 엑셀 다운
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/alimtalk/download/excel`;
},
extensionAlimtalkDetail: () => {
// POST: 알림톡 결제 통보 상세 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/alimtalk/detail`;
},
/* Empty Token API Management - jwt 토큰이 없는 API 관리 */
emptyTokenVerifyCode: () => {
// POST: 인증 코드 검증
return `${API_BASE_URL}/api/v1/empty-token/${API_URL_KEY}/verify/code`;
},
emptyTokenFindSendCode: () => {
// POST: 인증 코드 전솔
return `${API_BASE_URL}/api/v1/empty-token/${API_URL_KEY}/find-send/code`;
},
emptyTokenChange: () => {
// POST: 비밀번호 변경
return `${API_BASE_URL}/api/v1/empty-token/${API_URL_KEY}/change`;
},
emptyTokenAddSendCode: () => {
// POST: 인증 코드 전송
return `${API_BASE_URL}/api/v1/empty-token/${API_URL_KEY}/add-send/code`;
}
};
export type API_URL_TYPE = typeof API_URL;
export const WHITE_LIST_URLS: string[] = [
API_URL.login(),
API_URL.delegatedLogin(),
API_URL.delegatedLoginAuthentication(),
API_URL.logout(),
API_URL.refresh(),
API_URL.verify(),
API_URL.emailSend(),
API_URL.emailVerify(),
API_URL.phoneSend(),
API_URL.phoneVerify(),
API_URL.fidoRegisterBegin(),
API_URL.fidoRegisterComplete(),
API_URL.fidoLoginBegin(),
API_URL.fidoLoginComplete(),
];
export const getApiPathname = (url: string) => {
return new URL(url).pathname;
};