@lomray/microservice-payment-stripe
Version:
Stripe payment microservice based on NodeJS & inverted json.
175 lines (171 loc) • 7.58 kB
JavaScript
'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;