UNPKG

@lomray/microservice-payment-stripe

Version:

Stripe payment microservice based on NodeJS & inverted json.

175 lines (171 loc) 7.58 kB
'use strict'; var microserviceHelpers = require('@lomray/microservice-helpers'); var disputeReason = require('../constants/dispute-reason.js'); var disputeStatus = require('../constants/dispute-status.js'); var payoutStatus$1 = require('../constants/payout-status.js'); var payoutType$1 = require('../constants/payout-type.js'); var refundStatus = require('../constants/refund-status.js'); var payoutStatus = require('../constants/stripe/payout-status.js'); var payoutType = require('../constants/stripe/payout-type.js'); var stripeDisputeReason = require('../constants/stripe-dispute-reason.js'); var stripeDisputeStatus = require('../constants/stripe-dispute-status.js'); var stripeRefundStatus = require('../constants/stripe-refund-status.js'); var stripeTransactionStatus = require('../constants/stripe-transaction-status.js'); var transactionStatus = require('../constants/transaction-status.js'); /** * Stripe data parser * @description Parse Stripe data for readable microservices view format. * Decomposed payment stripe logic */ class Parser { /** * Parse Stripe payout status */ static parseStripePayoutStatus(stripeStatus) { switch (stripeStatus) { case payoutStatus.PAID: return payoutStatus$1.PAID; case payoutStatus.CANCELED: return payoutStatus$1.CANCELED; case payoutStatus.FAILED: return payoutStatus$1.FAILED; case payoutStatus.IN_TRANSIT: return payoutStatus$1.IN_TRANSIT; case payoutStatus.PENDING: return payoutStatus$1.PENDING; default: microserviceHelpers.Log.error(`Unknown Stripe payout status: ${stripeStatus}`); assert(stripeStatus); } } /** * Parse Stripe payout type */ static parseStripePayoutType(stripeStatus) { switch (stripeStatus) { case payoutType.CARD: return payoutType$1.CARD; case payoutType.BANK_ACCOUNT: return payoutType$1.BANK_ACCOUNT; default: microserviceHelpers.Log.error(`Unknown Stripe payout type: ${stripeStatus}`); assert(stripeStatus); } } /** * Parse Stripe refund status */ static parseStripeRefundStatus(stripeStatus) { switch (stripeStatus) { case stripeRefundStatus.SUCCEEDED: return refundStatus.SUCCESS; case stripeRefundStatus.PENDING: return refundStatus.IN_PROCESS; case stripeRefundStatus.FAILED: return refundStatus.ERROR; case stripeRefundStatus.CANCELED: return refundStatus.CANCELED; case stripeRefundStatus.REQUIRES_ACTION: return refundStatus.REQUIRES_ACTION; default: microserviceHelpers.Log.error(`Unknown Stripe refund status: ${stripeStatus}`); assert(stripeStatus); } } /** * Parse Stripe dispute status */ static parseStripeDisputeStatus(stripeStatus) { switch (stripeStatus) { case stripeDisputeStatus.NEEDS_RESPONSE: return disputeStatus.NEEDS_RESPONSE; case stripeDisputeStatus.LOST: return disputeStatus.LOST; case stripeDisputeStatus.UNDER_REVIEW: return disputeStatus.UNDER_REVIEW; case stripeDisputeStatus.WARNING_CLOSED: return disputeStatus.WARNING_CLOSED; case stripeDisputeStatus.WON: return disputeStatus.WON; case stripeDisputeStatus.WARNING_NEEDS_RESPONSE: return disputeStatus.WARNING_NEEDS_RESPONSE; case stripeDisputeStatus.WARNING_UNDER_REVIEW: return disputeStatus.WARNING_UNDER_REVIEW; default: microserviceHelpers.Log.error(`Unknown Stripe dispute status: ${stripeStatus}`); assert(stripeStatus); } } /** * Parse Stripe dispute reason */ static parseStripeDisputeReason(stripeReason) { switch (stripeReason) { case stripeDisputeReason.BANK_CANNOT_PROCESS: return disputeReason.BANK_CANNOT_PROCESS; case stripeDisputeReason.CHECK_RETURNED: return disputeReason.CHECK_RETURNED; case stripeDisputeReason.CREDIT_NOT_PROCESSED: return disputeReason.CREDIT_NOT_PROCESSED; case stripeDisputeReason.CUSTOMER_INITIATED: return disputeReason.CUSTOMER_INITIATED; case stripeDisputeReason.DEBIT_NOT_AUTHORIZED: return disputeReason.DEBIT_NOT_AUTHORIZED; case stripeDisputeReason.DUPLICATE: return disputeReason.DUPLICATE; case stripeDisputeReason.FRAUDULENT: return disputeReason.FRAUDULENT; case stripeDisputeReason.GENERAL: return disputeReason.GENERAL; case stripeDisputeReason.INCORRECT_ACCOUNT_DETAILS: return disputeReason.INCORRECT_ACCOUNT_DETAILS; case stripeDisputeReason.INSUFFICIENT_FUNDS: return disputeReason.INSUFFICIENT_FUNDS; case stripeDisputeReason.PRODUCT_NOT_RECEIVED: return disputeReason.PRODUCT_NOT_RECEIVED; case stripeDisputeReason.PRODUCT_UNACCEPTABLE: return disputeReason.PRODUCT_UNACCEPTABLE; case stripeDisputeReason.SUBSCRIPTION_CANCELED: return disputeReason.SUBSCRIPTION_CANCELED; case stripeDisputeReason.UNRECOGNIZED: return disputeReason.UNRECOGNIZED; default: microserviceHelpers.Log.error(`Unknown Stripe dispute reason: ${stripeReason}`); // Throw ts waring if new StripeDisputeReason was added, and it's not handled assert(stripeReason); } } /** * Parse Stripe transaction status */ static parseStripeTransactionStatus(stripeStatus) { switch (stripeStatus) { case stripeTransactionStatus.SUCCEEDED: case stripeTransactionStatus.PAID: return transactionStatus.SUCCESS; case stripeTransactionStatus.UNPAID: case stripeTransactionStatus.REQUIRES_CONFIRMATION: return transactionStatus.REQUIRED_PAYMENT; case stripeTransactionStatus.ERROR: case stripeTransactionStatus.PAYMENT_FAILED: case stripeTransactionStatus.CANCELED: case stripeTransactionStatus.REQUIRES_PAYMENT_METHOD: return transactionStatus.ERROR; case stripeTransactionStatus.NO_PAYMENT_REQUIRED: case stripeTransactionStatus.PROCESSING: return transactionStatus.IN_PROCESS; case stripeTransactionStatus.REFUND_SUCCEEDED: return transactionStatus.REFUNDED; case stripeTransactionStatus.REFUND_PENDING: return transactionStatus.REFUND_IN_PROCESS; case stripeTransactionStatus.REFUND_CANCELED: return transactionStatus.REFUND_CANCELED; case stripeTransactionStatus.REFUND_FAILED: return transactionStatus.REFUND_FAILED; default: microserviceHelpers.Log.error(`Unknown Stripe transaction status: ${stripeStatus}`); assert(stripeStatus); } } } module.exports = Parser;