plutuly-node
Version:
A TypeScript SDK for interacting with the Plutu payment gateway.
68 lines (67 loc) • 2.31 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.HttpClient = void 0;
// src/http/HttpClient.ts
const axios_1 = __importDefault(require("axios"));
class HttpClient {
async request(url, method, params = {}, headers = {}) {
var _a;
try {
const response = await (0, axios_1.default)({
method,
url,
headers,
data: params,
timeout: 60000,
});
return {
success: true,
status: response.status,
data: response.data,
};
}
catch (error) {
if (error.response) {
// API responded with a status outside the 2xx range
const apiError = ((_a = error.response.data) === null || _a === void 0 ? void 0 : _a.error) || {};
return {
success: false,
status: error.response.status,
data: error.response.data,
error: {
code: apiError.code || "UNKNOWN_ERROR",
message: apiError.message || "An unknown error occurred",
},
};
}
else if (error.request) {
// No response received from the server
return {
success: false,
status: 500,
data: null,
error: {
code: "NO_RESPONSE",
message: "No response received from the server",
},
};
}
else {
// Error setting up the request
return {
success: false,
status: 500,
data: null,
error: {
code: "REQUEST_SETUP_ERROR",
message: error.message || "Error setting up the request",
},
};
}
}
}
}
exports.HttpClient = HttpClient;