UNPKG

@portone/server-sdk

Version:

PortOne JavaScript SDK for server-side usage

284 lines (283 loc) 8.01 kB
import { TransferError } from "./TransferError.mjs"; import { USER_AGENT } from "../../../client.mjs"; export function TransferClient(init) { const baseUrl = init.baseUrl ?? "https://api.portone.io"; const secret = init.secret; return { downloadPlatformTransferSheet: async (options) => { const filter = options?.filter; const fields = options?.fields; const requestBody = JSON.stringify({ filter, fields }); const query = [ ["requestBody", requestBody] ].flatMap(([key, value]) => value == null ? [] : `${key}=${encodeURIComponent(value)}`).join("&"); const response = await fetch( new URL(`/platform/transfer-summaries/sheet-file?${query}`, baseUrl), { method: "GET", headers: { Authorization: `PortOne ${secret}`, "User-Agent": USER_AGENT } } ); if (!response.ok) { throw new DownloadPlatformTransferSheetError(await response.json()); } return response.text(); }, getPlatformTransferSummaries: async (options) => { const page = options?.page; const filter = options?.filter; const requestBody = JSON.stringify({ page, filter }); const query = [ ["requestBody", requestBody] ].flatMap(([key, value]) => value == null ? [] : `${key}=${encodeURIComponent(value)}`).join("&"); const response = await fetch( new URL(`/platform/transfer-summaries?${query}`, baseUrl), { method: "GET", headers: { Authorization: `PortOne ${secret}`, "User-Agent": USER_AGENT } } ); if (!response.ok) { throw new GetPlatformTransferSummariesError(await response.json()); } return response.json(); }, createPlatformManualTransfer: async (options) => { const { partnerId, memo, settlementAmount, settlementTaxFreeAmount, settlementDate, isForTest, userDefinedProperties } = options; const requestBody = JSON.stringify({ partnerId, memo, settlementAmount, settlementTaxFreeAmount, settlementDate, isForTest, userDefinedProperties }); const response = await fetch( new URL("/platform/transfers/manual", baseUrl), { method: "POST", headers: { Authorization: `PortOne ${secret}`, "User-Agent": USER_AGENT }, body: requestBody } ); if (!response.ok) { throw new CreatePlatformManualTransferError(await response.json()); } return response.json(); }, createPlatformOrderTransfer: async (options) => { const { partnerId, contractId, memo, paymentId, orderDetail, taxFreeAmount, settlementStartDate, settlementDate, discounts, additionalFees, externalPaymentDetail, isForTest, parameters, userDefinedProperties } = options; const requestBody = JSON.stringify({ partnerId, contractId, memo, paymentId, orderDetail, taxFreeAmount, settlementStartDate, settlementDate, discounts, additionalFees, externalPaymentDetail, isForTest, parameters, userDefinedProperties }); const response = await fetch( new URL("/platform/transfers/order", baseUrl), { method: "POST", headers: { Authorization: `PortOne ${secret}`, "User-Agent": USER_AGENT }, body: requestBody } ); if (!response.ok) { throw new CreatePlatformOrderTransferError(await response.json()); } return response.json(); }, createPlatformOrderCancelTransfer: async (options) => { const { partnerId, paymentId, transferId, cancellationId, memo, orderDetail, taxFreeAmount, discounts, settlementStartDate, settlementDate, externalCancellationDetail, isForTest, userDefinedProperties } = options; const requestBody = JSON.stringify({ partnerId, paymentId, transferId, cancellationId, memo, orderDetail, taxFreeAmount, discounts, settlementStartDate, settlementDate, externalCancellationDetail, isForTest, userDefinedProperties }); const response = await fetch( new URL("/platform/transfers/order-cancel", baseUrl), { method: "POST", headers: { Authorization: `PortOne ${secret}`, "User-Agent": USER_AGENT }, body: requestBody } ); if (!response.ok) { throw new CreatePlatformOrderCancelTransferError(await response.json()); } return response.json(); }, getPlatformTransfer: async (options) => { const { id } = options; const response = await fetch( new URL(`/platform/transfers/${encodeURIComponent(id)}`, baseUrl), { method: "GET", headers: { Authorization: `PortOne ${secret}`, "User-Agent": USER_AGENT } } ); if (!response.ok) { throw new GetPlatformTransferError(await response.json()); } return response.json(); }, deletePlatformTransfer: async (options) => { const { id } = options; const response = await fetch( new URL(`/platform/transfers/${encodeURIComponent(id)}`, baseUrl), { method: "DELETE", headers: { Authorization: `PortOne ${secret}`, "User-Agent": USER_AGENT } } ); if (!response.ok) { throw new DeletePlatformTransferError(await response.json()); } return response.json(); } }; } export class DownloadPlatformTransferSheetError extends TransferError { /** @ignore */ constructor(data) { super(data); Object.setPrototypeOf(this, DownloadPlatformTransferSheetError.prototype); this.name = "DownloadPlatformTransferSheetError"; } } export class GetPlatformTransferSummariesError extends TransferError { /** @ignore */ constructor(data) { super(data); Object.setPrototypeOf(this, GetPlatformTransferSummariesError.prototype); this.name = "GetPlatformTransferSummariesError"; } } export class CreatePlatformManualTransferError extends TransferError { /** @ignore */ constructor(data) { super(data); Object.setPrototypeOf(this, CreatePlatformManualTransferError.prototype); this.name = "CreatePlatformManualTransferError"; } } export class CreatePlatformOrderTransferError extends TransferError { /** @ignore */ constructor(data) { super(data); Object.setPrototypeOf(this, CreatePlatformOrderTransferError.prototype); this.name = "CreatePlatformOrderTransferError"; } } export class CreatePlatformOrderCancelTransferError extends TransferError { /** @ignore */ constructor(data) { super(data); Object.setPrototypeOf(this, CreatePlatformOrderCancelTransferError.prototype); this.name = "CreatePlatformOrderCancelTransferError"; } } export class GetPlatformTransferError extends TransferError { /** @ignore */ constructor(data) { super(data); Object.setPrototypeOf(this, GetPlatformTransferError.prototype); this.name = "GetPlatformTransferError"; } } export class DeletePlatformTransferError extends TransferError { /** @ignore */ constructor(data) { super(data); Object.setPrototypeOf(this, DeletePlatformTransferError.prototype); this.name = "DeletePlatformTransferError"; } }