UNPKG

@codingwithmanny/iyzipay-js

Version:
62 lines 2.84 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateHeaders = exports.generateRequestString = exports.formatPrice = void 0; const constants_1 = require("../utils/constants"); const crypto_1 = __importDefault(require("crypto")); const formatPrice = (price) => { if (("number" !== typeof price && "string" !== typeof price) || (typeof price === "number" && !isFinite(price))) { return price; } const resultPrice = parseFloat(price).toString(); if (-1 === resultPrice.indexOf(".")) { return resultPrice + ".0"; } return resultPrice; }; exports.formatPrice = formatPrice; const generateRequestString = (request) => { const isArray = Array.isArray(request); let requestString = '['; for (let i in request) { const val = request[i]; if (typeof val !== 'undefined' && typeof val !== 'function') { if (!isArray) { requestString += i + '='; } if (typeof val === 'object') { requestString += (0, exports.generateRequestString)(val); } else { requestString += val; } requestString += isArray ? ', ' : ','; } } requestString = requestString.slice(0, (isArray ? -2 : -1)); requestString += ']'; return requestString; }; exports.generateRequestString = generateRequestString; const generateAuthorizationString = (apiKey, randomString, secretKey, payloadObject) => { const requestString = (0, exports.generateRequestString)(payloadObject); const hashSha1 = crypto_1.default.createHash('sha1'); hashSha1.update(apiKey + randomString + secretKey + requestString, 'utf-8'); return hashSha1.digest('base64'); }; const generateRandomString = (size) => { return process.hrtime()[0] + Math.random().toString(size).slice(2); }; const generateHeaders = (apiKey, secretKey, payload) => { let headers = {}; headers[constants_1.headerAttributes.HEADER_NAME_CLIENT_VERSION] = constants_1.headerAttributes.DEFAULT_CLIENT_VERSION; headers[constants_1.headerAttributes.HEADER_NAME_RANDOM_STRING] = generateRandomString(constants_1.headerAttributes.DEFAULT_RANDOM_STRING_SIZE); const genAuth = generateAuthorizationString(apiKey, headers[constants_1.headerAttributes.HEADER_NAME_RANDOM_STRING], secretKey, payload); headers[constants_1.headerAttributes.HEADER_NAME_AUTHORIZATION] = constants_1.headerAttributes.HEADER_VALUE_AUTHORIZATION_PREFIX + ' ' + apiKey + constants_1.headerAttributes.DEFAULT_SEPARATOR + genAuth; return headers; }; exports.generateHeaders = generateHeaders; //# sourceMappingURL=utils.js.map