enhancv/mongoose-subscriptions

View on GitHub
src/Schema/Statuses/TransactionStatus.js

Summary

Maintainability
A
0 mins
Test Coverage
const mongoose = require("mongoose");

const AUTHORIZATION_EXPIRED = "authorization_expired";
const AUTHORIZED = "authorized";
const AUTHORIZING = "authorizing";
const SETTLEMENT_PENDING = "settlement_pending";
const SETTLEMENT_CONFIRMED = "settlement_confirmed";
const SETTLEMENT_DECLINED = "settlement_declined";
const FAILED = "failed";
const GATEWAY_REJECTED = "gateway_rejected";
const PROCESSOR_DECLINED = "processor_declined";
const SETTLED = "settled";
const SETTLING = "settling";
const SUBMITTED_FOR_SETTLEMENT = "submitted_for_settlement";
const VOIDED = "voided";

const statuses = [
    AUTHORIZATION_EXPIRED,
    AUTHORIZED,
    AUTHORIZING,
    SETTLEMENT_PENDING,
    SETTLEMENT_CONFIRMED,
    SETTLEMENT_DECLINED,
    FAILED,
    GATEWAY_REJECTED,
    PROCESSOR_DECLINED,
    SETTLED,
    SETTLING,
    SUBMITTED_FOR_SETTLEMENT,
    VOIDED,
];

const TransactionStatus = new mongoose.Schema(
    {
        status: {
            type: String,
            enum: statuses,
        },
        timestamp: Date,
    },
    { _id: false }
);

TransactionStatus.AUTHORIZATION_EXPIRED = AUTHORIZATION_EXPIRED;
TransactionStatus.AUTHORIZED = AUTHORIZED;
TransactionStatus.AUTHORIZING = AUTHORIZING;
TransactionStatus.SETTLEMENT_PENDING = SETTLEMENT_PENDING;
TransactionStatus.SETTLEMENT_CONFIRMED = SETTLEMENT_CONFIRMED;
TransactionStatus.SETTLEMENT_DECLINED = SETTLEMENT_DECLINED;
TransactionStatus.FAILED = FAILED;
TransactionStatus.GATEWAY_REJECTED = GATEWAY_REJECTED;
TransactionStatus.PROCESSOR_DECLINED = PROCESSOR_DECLINED;
TransactionStatus.SETTLED = SETTLED;
TransactionStatus.SETTLING = SETTLING;
TransactionStatus.SUBMITTED_FOR_SETTLEMENT = SUBMITTED_FOR_SETTLEMENT;
TransactionStatus.VOIDED = VOIDED;

TransactionStatus.Statuses = statuses;

module.exports = TransactionStatus;