@portone/server-sdk
Version:
PortOne JavaScript SDK for server-side usage
284 lines (283 loc) • 8.01 kB
JavaScript
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";
}
}