UNPKG

@calf/dotypay

Version:

Dotypay module of Calf framework.

81 lines (80 loc) 4.26 kB
"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;