@calf/dotypay
Version:
Dotypay module of Calf framework.
81 lines (80 loc) • 4.26 kB
JavaScript
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.PaymentOperation = void 0;
// Moment
var Moment = require("moment");
// Namespaces
var common_namespace_1 = require("../namespaces/common.namespace");
var payment_namespace_1 = require("../namespaces/payment.namespace");
// Operations
var common_operation_1 = require("./common.operation");
/**
* Payment operation
* @description Operation that executes payment
*/
var PaymentOperation = /** @class */ (function (_super) {
__extends(PaymentOperation, _super);
function PaymentOperation() {
return _super !== null && _super.apply(this, arguments) || this;
}
/**
* Execute
*/
PaymentOperation.prototype.execute = function () {
// Init request
var request = { MessageHeader: {}, PaymentRequest: {} };
// Build header
request.MessageHeader.MessageCategory = common_namespace_1.Common.Enums.MessageCategory.Payment;
request.MessageHeader.MessageClass = common_namespace_1.Common.Enums.MessageClass.Service;
request.MessageHeader.MessageType = common_namespace_1.Common.Enums.MessageType.Request;
request.MessageHeader.POIID = this.config.POIID;
request.MessageHeader.ProtocolVersion = this.config.ProtocolVersion;
request.MessageHeader.SaleID = this.config.SaleID;
request.MessageHeader.ServiceID = this.config.ServiceID;
// Set payment data
request.PaymentRequest.PaymentData = { PaymentType: payment_namespace_1.Payment.Enums.PaymentType.Normal };
// Init payment transaction
request.PaymentRequest.PaymentTransaction = { AmountsReq: {}, ProprietaryTags: {} };
// Set amount
request.PaymentRequest.PaymentTransaction.AmountsReq.Currency = this.data.Currency;
request.PaymentRequest.PaymentTransaction.AmountsReq.RequestedAmount = this.data.Amount;
// Set proprietary tags
request.PaymentRequest.PaymentTransaction.ProprietaryTags.AskForTip = !!this.data.AskForTip;
request.PaymentRequest.PaymentTransaction.ProprietaryTags.CustomIdentifier = this.data.CustomIdentifier;
request.PaymentRequest.PaymentTransaction.ProprietaryTags.EnterTipAsTargetAmount = !!this.data.EnterTipAsTargetAmount;
request.PaymentRequest.PaymentTransaction.ProprietaryTags.VariableSymbol = this.data.VariableSymbol;
request.PaymentRequest.PaymentTransaction.ProprietaryTags.ForceCustomTip = false;
request.PaymentRequest.PaymentTransaction.ProprietaryTags.RequireTipConfirmation = false;
request.PaymentRequest.PaymentTransaction.ProprietaryTags.AskForVariableSymbol = false;
// Init sale data
request.PaymentRequest.SaleData = { SaleTransactionID: {} };
// Set transaction id
request.PaymentRequest.SaleData.SaleTransactionID.TimeStamp = Moment(this.data.TimeStamp).format();
request.PaymentRequest.SaleData.SaleTransactionID.TransactionID = this.data.UUID;
// Init headers
var headers = {};
// Set headers
headers["Authorization"] = "Bearer " + this.config.Token;
headers["Content-Type"] = "application/json";
headers["Content-Length"] = JSON.stringify(request).length;
headers["Connection"] = "keep-alive";
headers["Accept"] = "*/*";
// Make request
return this.service.post(this.config.Url + ":" + this.config.Port, headers, { SaleToPOIRequest: request });
};
return PaymentOperation;
}(common_operation_1.CommonOperation));
exports.PaymentOperation = PaymentOperation;