Files
Exchange/server/api/redis.js
2025-11-07 22:24:40 +01:00

117 lines
3.7 KiB
JavaScript
Executable File

"use strict";
exports.__esModule = true;
exports.getCurrentPrice = exports.hashSetMembers = exports.hashHMset = exports.hashGetAll = exports.hashset = exports.hashget = exports.globalRedisClient = void 0;
var redis = require("redis");
var myError_1 = require("./myError");
exports.globalRedisClient = redis.createClient({
port: process.env.REDIS_PORT,
host: process.env.REDIS_HOST,
enable_offline_queue: false
});
// globalRedisClient.auth(process.env.REDIS_PASS, (err) => {
// if (err) console.log(err);
// })
exports.globalRedisClient.on('connect', function (err) {
if (err) {
console.log(err);
}
else {
console.log('Redis-server is connected');
}
});
exports.globalRedisClient.on('error', function (err) {
console.log('Error ' + err);
});
exports.hashget = function (tag) {
return new Promise(function (resolve, reject) {
exports.globalRedisClient.get(tag, function (err, reply) {
if (err) {
reject(err);
}
else {
resolve(reply);
}
});
});
};
exports.hashset = function (tag, val) {
return new Promise(function (resolve, reject) {
exports.globalRedisClient.set(tag, val, function (err, reply) {
if (err) {
reject(err);
}
else {
resolve(reply);
}
});
});
};
exports.hashGetAll = function (tag) {
return new Promise(function (resolve, reject) {
exports.globalRedisClient.hgetall(tag, function (err, reply) {
if (err) {
reject(err);
}
else {
resolve(reply);
}
});
});
};
exports.hashHMset = function (tag, val) {
return new Promise(function (resolve, reject) {
exports.globalRedisClient.hmset(tag, val, function (err, reply) {
if (err) {
reject(err);
}
else {
resolve(reply);
}
});
});
};
exports.hashSetMembers = function (tag) {
return new Promise(function (resolve, reject) {
exports.globalRedisClient.smembers(tag, function (err, reply) {
if (err) {
reject(err);
}
else {
resolve(reply);
}
});
});
};
function getCurrentPrice(currency) {
//API for getting current currency price
return exports.hashGetAll(currency.toString())
.then(function (currencyInfo) {
return exports.hashGetAll(currencyInfo.ab_name.toString() + "-g")
.then(function (currencyInstantPrice) {
if (currencyInstantPrice) {
return exports.hashget("dollarPrice")
.then(function (rialPrice) {
if (rialPrice) {
return Number(currencyInstantPrice.current) * Number(rialPrice);
}
else {
var error = new myError_1["default"]('It is not possible to get price currently!', 400, 11, 'امکان قیمت گیری در حال حاضر وجود ندارد!', 'خطا رخ داد');
throw error;
}
})["catch"](function (err) {
throw err;
});
}
else {
var error = new myError_1["default"]('It is not possible to get price currently!', 400, 11, 'امکان قیمت گیری در حال حاضر وجود ندارد!', 'خطا رخ داد');
throw error;
}
})["catch"](function (err) {
throw err;
});
})["catch"](function (err) {
throw err;
});
}
exports.getCurrentPrice = getCurrentPrice;