paypal-rest-api
Version:
A typescript module for integrating with PayPal REST APIs.
99 lines (98 loc) • 3.65 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const joi = require("joi");
const schemas_1 = require("../api/schemas");
exports.webhookIdSchema = joi.string().alphanum().min(1);
exports.webhookEventTypeNameSchema = joi.string().valid([
"BILLING.PLAN.CREATED",
"BILLING.PLAN.UPDATED",
"BILLING.SUBSCRIPTION.CANCELLED",
"BILLING.SUBSCRIPTION.CREATED",
"BILLING.SUBSCRIPTION.RE-ACTIVATED",
"BILLING.SUBSCRIPTION.SUSPENDED",
"BILLING.SUBSCRIPTION.UPDATED",
"CUSTOMER.DISPUTE.CREATED",
"CUSTOMER.DISPUTE.RESOLVED",
"CUSTOMER.DISPUTE.UPDATED",
"IDENTITY.AUTHORIZATION-CONSENT.REVOKED",
"INVOICING.INVOICE.CANCELLED",
"INVOICING.INVOICE.CREATED",
"INVOICING.INVOICE.PAID",
"INVOICING.INVOICE.REFUNDED",
"INVOICING.INVOICE.UPDATED",
"MERCHANT.ONBOARDING.COMPLETED",
"PAYMENT.AUTHORIZATION.CREATED",
"PAYMENT.AUTHORIZATION.VOIDED",
"PAYMENT.CAPTURE.COMPLETED",
"PAYMENT.CAPTURE.DENIED",
"PAYMENT.CAPTURE.PENDING",
"PAYMENT.CAPTURE.REFUNDED",
"PAYMENT.CAPTURE.REVERSED",
"PAYMENT.ORDER.CANCELLED",
"PAYMENT.ORDER.CREATED",
"PAYMENT.PAYOUTS-ITEM.BLOCKED",
"PAYMENT.PAYOUTS-ITEM.CANCELED",
"PAYMENT.PAYOUTS-ITEM.DENIED",
"PAYMENT.PAYOUTS-ITEM.FAILED",
"PAYMENT.PAYOUTS-ITEM.HELD",
"PAYMENT.PAYOUTS-ITEM.REFUNDED",
"PAYMENT.PAYOUTS-ITEM.RETURNED",
"PAYMENT.PAYOUTS-ITEM.SUCCEEDED",
"PAYMENT.PAYOUTS-ITEM.UNCLAIMED",
"PAYMENT.PAYOUTSBATCH.DENIED",
"PAYMENT.PAYOUTSBATCH.PROCESSING",
"PAYMENT.PAYOUTSBATCH.SUCCESS",
"PAYMENT.SALE.COMPLETED",
"PAYMENT.SALE.DENIED",
"PAYMENT.SALE.PENDING",
"PAYMENT.SALE.REFUNDED",
"PAYMENT.SALE.REVERSED",
"VAULT.CREDIT-CARD.CREATED",
"VAULT.CREDIT-CARD.DELETED",
"VAULT.CREDIT-CARD.UPDATED",
]);
exports.webhookEventTypeSchema = joi.object({
description: joi.string().optional(),
name: exports.webhookEventTypeNameSchema.required(),
status: joi.string().optional(),
});
exports.webhookEventTypesSchema = joi.array().min(1).items(exports.webhookEventTypeSchema);
exports.webhookSchema = joi.object({
event_types: exports.webhookEventTypesSchema.required(),
url: joi.string().uri({
scheme: ["https"],
}).required(),
});
exports.webhookCreateRequestSchema = joi.object({
body: exports.webhookSchema.required(),
method: joi.string().default("POST"),
uri: joi.string().default("/v1/notifications/webhooks"),
});
exports.webhookGetRequestSchema = joi.object({
method: joi.string().default("GET"),
uri: joi.string().regex(/\/v1\/notifications\/webhooks\/.*/).required(),
});
exports.webhookListRequestSchema = joi.object({
method: joi.string().default("GET"),
qs: joi.object({
anchor_type: joi.string().valid(["APPLICATION", "ACCOUNT"]).default("APPLICATION"),
}).default(),
uri: joi.string().default("/v1/notifications/webhooks"),
});
exports.webhookUpdateRequestSchema = joi.object({
body: schemas_1.updateRequestSchema.required(),
method: joi.string().default("PATCH"),
uri: joi.string().regex(/\/v1\/notifications\/webhooks\/.*/).required(),
});
exports.webhookDeleteRequestSchema = joi.object({
method: joi.string().default("DELETE"),
uri: joi.string().regex(/\/v1\/notifications\/webhooks\/.*/).required(),
});
exports.webhookGetEventsRequestSchema = joi.object({
method: joi.string().default("GET"),
uri: joi.string().required(),
});
exports.webhookEventTypeListRequestSchema = joi.object({
method: joi.string().default("GET"),
uri: joi.string().default(/\/v1\/notifications\/webhooks-event-types/),
});