merchantapi
Version:
Miva Merchant JSON API SDK
293 lines (259 loc) • 5.41 kB
JavaScript
/*
* (c) Miva Inc <https://www.miva.com/>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
const util = require('./../util');
const models = require('./../models');
const { Model } = require('./../abstract');
/** ORDER_PAYMENT_TYPE constants. */
/** @ignore */
const ORDER_PAYMENT_TYPE_DECLINED = 0;
/** @ignore */
const ORDER_PAYMENT_TYPE_LEGACY_AUTH = 1;
/** @ignore */
const ORDER_PAYMENT_TYPE_LEGACY_CAPTURE = 2;
/** @ignore */
const ORDER_PAYMENT_TYPE_AUTH = 3;
/** @ignore */
const ORDER_PAYMENT_TYPE_CAPTURE = 4;
/** @ignore */
const ORDER_PAYMENT_TYPE_AUTH_CAPTURE = 5;
/** @ignore */
const ORDER_PAYMENT_TYPE_REFUND = 6;
/** @ignore */
const ORDER_PAYMENT_TYPE_VOID = 7;
/**
* OrderPayment data model.
* @class
*/
class OrderPayment extends Model {
/**
* OrderPayment Constructor.
* @param {Object} data
* @returns {void}
*/
constructor(data = {}) {
super(data);
if (!util.isUndefined(this.module)) {
if (!util.isInstanceOf(this.module, models.Module) && util.isObject(this.module)) {
this.module = new models.Module(this.module);
} else if (!util.isInstanceOf(this.module, models.Module)) {
throw new Error(util.format('Expected Module or an Object but got %s',
typeof this.module));
}
} else {
this.module = {};
}
}
/**
* Constant ORDER_PAYMENT_TYPE_DECLINED
* @returns {number}
* @const
* @static
*/
static get ORDER_PAYMENT_TYPE_DECLINED() {
return ORDER_PAYMENT_TYPE_DECLINED;
}
/**
* Constant ORDER_PAYMENT_TYPE_LEGACY_AUTH
* @returns {number}
* @const
* @static
*/
static get ORDER_PAYMENT_TYPE_LEGACY_AUTH() {
return ORDER_PAYMENT_TYPE_LEGACY_AUTH;
}
/**
* Constant ORDER_PAYMENT_TYPE_LEGACY_CAPTURE
* @returns {number}
* @const
* @static
*/
static get ORDER_PAYMENT_TYPE_LEGACY_CAPTURE() {
return ORDER_PAYMENT_TYPE_LEGACY_CAPTURE;
}
/**
* Constant ORDER_PAYMENT_TYPE_AUTH
* @returns {number}
* @const
* @static
*/
static get ORDER_PAYMENT_TYPE_AUTH() {
return ORDER_PAYMENT_TYPE_AUTH;
}
/**
* Constant ORDER_PAYMENT_TYPE_CAPTURE
* @returns {number}
* @const
* @static
*/
static get ORDER_PAYMENT_TYPE_CAPTURE() {
return ORDER_PAYMENT_TYPE_CAPTURE;
}
/**
* Constant ORDER_PAYMENT_TYPE_AUTH_CAPTURE
* @returns {number}
* @const
* @static
*/
static get ORDER_PAYMENT_TYPE_AUTH_CAPTURE() {
return ORDER_PAYMENT_TYPE_AUTH_CAPTURE;
}
/**
* Constant ORDER_PAYMENT_TYPE_REFUND
* @returns {number}
* @const
* @static
*/
static get ORDER_PAYMENT_TYPE_REFUND() {
return ORDER_PAYMENT_TYPE_REFUND;
}
/**
* Constant ORDER_PAYMENT_TYPE_VOID
* @returns {number}
* @const
* @static
*/
static get ORDER_PAYMENT_TYPE_VOID() {
return ORDER_PAYMENT_TYPE_VOID;
}
/**
* Get id.
* @returns {number}
*/
getId() {
return this.getField('id', 0);
}
/**
* Get order_id.
* @returns {number}
*/
getOrderId() {
return this.getField('order_id', 0);
}
/**
* Get type.
* @returns {number}
*/
getType() {
return this.getField('type', 0);
}
/**
* Get refnum.
* @returns {string}
*/
getReferenceNumber() {
return this.getField('refnum');
}
/**
* Get amount.
* @returns {number}
*/
getAmount() {
return this.getField('amount', 0.00);
}
/**
* Get formatted_amount.
* @returns {string}
*/
getFormattedAmount() {
return this.getField('formatted_amount');
}
/**
* Get available.
* @returns {number}
*/
getAvailable() {
return this.getField('available', 0.00);
}
/**
* Get formatted_available.
* @returns {string}
*/
getFormattedAvailable() {
return this.getField('formatted_available');
}
/**
* Get dtstamp.
* @returns {number}
*/
getDateTimeStamp() {
return this.getTimestampField('dtstamp');
}
/**
* Get expires.
* @returns {number}
*/
getExpires() {
return this.getTimestampField('expires');
}
/**
* Get pay_id.
* @returns {number}
*/
getPaymentId() {
return this.getField('pay_id', 0);
}
/**
* Get pay_secid.
* @returns {number}
*/
getPaymentSecId() {
return this.getField('pay_secid', 0);
}
/**
* Get decrypt_status.
* @returns {string}
*/
getDecryptStatus() {
return this.getField('decrypt_status');
}
/**
* Get decrypt_error.
* @returns {string}
*/
getDecryptError() {
return this.getField('decrypt_error');
}
/**
* Get description.
* @returns {string}
*/
getDescription() {
return this.getField('description');
}
/**
* Get data.
* @returns {Object}
*/
getPaymentData() {
return this.getField('data', {});
}
/**
* Get ip.
* @returns {string}
*/
getIp() {
return this.getField('ip');
}
/**
* Get module.
* @returns {Module|*}
*/
getModule() {
return this.getField('module', null);
}
/**
* @override
*/
toObject() {
var ret = Object.assign(this);
if (util.isInstanceOf(ret['module'], models.Module)) {
ret['module'] = ret['module'].toObject();
}
return ret;
}
}
module.exports.OrderPayment = OrderPayment;