UNPKG

paypal-rest-api

Version:

A typescript module for integrating with PayPal REST APIs.

99 lines (98 loc) 3.65 kB
"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/), });