@codingwithmanny/iyzipay-js
Version:
A Typesafe Iyzico JS SDK
62 lines • 2.84 kB
JavaScript
;
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