@stratosphere-network/wallet
Version:
Wallet module for StratoSphere SDK
121 lines • 3.96 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PaymentLinksService = void 0;
const base_service_1 = require("../base-service");
class PaymentLinksService extends base_service_1.BaseService {
/**
* Validates the time format for send links
* Expected format: number followed by s, m, h, or d (e.g., 1s, 5m, 2h, 30d)
*/
validateTimeFormat(time) {
const timePattern = /^(\d+)(s|m|h|d)$/;
if (!timePattern.test(time)) {
throw new Error(`Invalid time format: "${time}". Expected format: number followed by s, m, h, or d (e.g., 1s, 5m, 2h, 30d)`);
}
const match = time.match(timePattern);
const value = parseInt(match[1], 10);
if (value <= 0) {
throw new Error(`Time value must be greater than 0. Received: ${value}`);
}
}
async requestPayment(request) {
return this.authenticatedRequest({
method: "POST",
url: "/payment-links/request-payment",
data: request,
});
}
async payPaymentRequest(nonce) {
return this.authenticatedRequest({
method: "POST",
url: "/payment-links/execute",
params: { nonce },
});
}
async createSpecificSendLink(request) {
// Validate time format before making the API call
this.validateTimeFormat(request.time);
return this.authenticatedRequest({
method: "POST",
url: "/payment-links/send-specific",
data: request,
});
}
async createOpenSendLink(request) {
this.validateTimeFormat(request.time);
return this.authenticatedRequest({
method: "POST",
url: "/payment-links/send-open",
data: request,
});
}
async claimSpecificSendLink(request) {
return this.authenticatedRequest({
method: "POST",
url: "/payment-links/claim-specific",
params: { id: request.id },
});
}
async claimOpenSendLink(request) {
return this.authenticatedRequest({
method: "POST",
url: "/payment-links/claim-open",
params: { id: request.id },
});
}
async listPaymentRequests(request) {
return this.authenticatedRequest({
method: "GET",
url: "/payment-links/list-payment-requests",
params: request,
});
}
async listSendLinks(request) {
return this.authenticatedRequest({
method: "GET",
url: "/payment-links/list-send-links",
params: request,
});
}
async cancelPaymentRequest(nonce) {
return this.authenticatedRequest({
method: "DELETE",
url: `/payment-links/cancel-payment-request/${nonce}`,
});
}
async cancelSendLink(urlId) {
return this.authenticatedRequest({
method: "DELETE",
url: `/payment-links/cancel-send-link/${urlId}`,
});
}
async registerRequestLinkRedirectUrl(request) {
return this.authenticatedRequest({
method: "POST",
url: "/project/register-request-link-redirect-url",
data: request,
});
}
async registerSendLinkRedirectUrl(request) {
return this.authenticatedRequest({
method: "POST",
url: "/project/register-send-link-redirect-url",
data: request,
});
}
async getAllUsers() {
return this.authenticatedRequest({
method: "GET",
url: "/user/all",
});
}
async getRedirectLinks(request) {
return this.authenticatedRequest({
method: "POST",
url: "/project/get-redirect-links",
data: request,
});
}
}
exports.PaymentLinksService = PaymentLinksService;
//# sourceMappingURL=payment-links.js.map