Last active
February 10, 2023 12:49
-
-
Save HarshitRuwali/ff36ea6f8edfa55a084521d65ca67fb8 to your computer and use it in GitHub Desktop.
API endpoint for getting or deleting data from redis
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const express = require("express"); | |
var bodyParser = require("body-parser"); | |
var app = express(); | |
app.use(bodyParser.urlencoded({ extended: false })); | |
app.use(bodyParser.json()); | |
var redis = require("redis"); | |
var async = require("async"); | |
const e = require("express"); | |
let redisClient = redis.createClient("6379","redis-db"); | |
app.get('/getAllRedisKeys', (req, res) => { | |
redisClient.keys('*', function (error, keys) { | |
if(keys){ | |
var results = {}; | |
results["keys"] = keys; | |
res.json(results); | |
} | |
if(error){ | |
console.log("Error from getAllRedisKeys--->>", error); | |
return "Error" | |
} | |
}); | |
}); | |
app.get('/getAllRedisData', (req, res) => { | |
redisClient.keys('*', function (error, keys) { | |
if(keys){ | |
async.map(keys, function(key, callback) { | |
var data = {}; | |
redisClient.get(key, function (error, value) { | |
if (error){ | |
callback(error, null); | |
} | |
data['key']=key; | |
data['data']=value; | |
callback(null, data); | |
}); | |
},function (error, result) { | |
res.json({"data":result}); | |
if (error){ | |
console.log(error); | |
return "error"; | |
} | |
}); | |
} | |
if(error){ | |
console.log("Error from getAllRedisData--->>", error); | |
return "Error" | |
} | |
}); | |
}); | |
app.post('/getRedisDataByClientId', (req, res) => { | |
var client_id = req.body.client_id; | |
var client_id_regex = /\d*-/; | |
redisClient.keys('*', function (error, keys) { | |
if(keys){ | |
async.map(keys, function(key, callback) { | |
redisClient.get(key, function (error, value) { | |
if (error){ | |
callback(error, null); | |
} | |
var key_client_id = key.match(client_id_regex); | |
key_client_id = key_client_id[0].split("-")[0]; | |
var client_id_keys = {}; | |
if(key_client_id == client_id){ | |
client_id_keys['key']=key; | |
client_id_keys['data']=value; | |
} | |
callback(null, client_id_keys); | |
}); | |
},function (error, result) { | |
result = result.filter( | |
obj => !(obj && Object.keys(obj).length == 0) | |
); | |
res.json({"data":result}); | |
if (error){ | |
console.log(error); | |
return "error"; | |
} | |
}); | |
} | |
if(error){ | |
console.log("Error from getRedisDataByClientId--->>", error); | |
return "Error" | |
} | |
}); | |
}); | |
app.post('/getRedisKeysByClientId', (req, res) => { | |
var client_id = req.body.client_id; | |
var client_id_regex = /\d*-/; | |
redisClient.keys('*', function (error, keys) { | |
if(keys){ | |
var results = {}; | |
var client_id_keys = []; | |
async.map(keys, function(key, callback){ | |
var key_client_id = key.match(client_id_regex); | |
key_client_id = key_client_id[0].split("-")[0]; | |
if(key_client_id == client_id){ | |
client_id_keys.push(key); | |
} | |
}) | |
results["keys"] = client_id_keys; | |
res.json(results); | |
} | |
if(error){ | |
console.log("Error from getRedisKeysByClientId--->>", error); | |
return "Error" | |
} | |
}); | |
}); | |
app.post('/deleteRedisKeysByClientId', (req, res) => { | |
var client_id = req.body.client_id; | |
var client_id_regex = /\d*-/; | |
redisClient.keys('*', function (error, keys) { | |
if(keys){ | |
var results = {}; | |
var client_id_keys = []; | |
async.map(keys, function(key, callback){ | |
var key_client_id = key.match(client_id_regex); | |
key_client_id = key_client_id[0].split("-")[0]; | |
if(key_client_id == client_id){ | |
client_id_keys.push(key); | |
redisClient.del(key); | |
} | |
}); | |
redisClient.del(client_id_keys, function(err, response){ | |
if(response != null){ | |
console.log("deleted"); | |
}else{ | |
console.log("error"); | |
} | |
}); | |
results["keys"] = client_id_keys; | |
res.json(results); | |
} | |
if(error){ | |
console.log("Error from deleteRedisKeysByClientId--->>", error); | |
return "Error" | |
} | |
}); | |
}); | |
app.post('/getRedisKeysByTripId', (req, res) => { | |
var trip_id = req.body.trip_id; | |
var trip_id_regex = /\d*-\d*/; | |
redisClient.keys('*', function (error, keys) { | |
if(keys){ | |
var results = {}; | |
var trip_id_keys = []; | |
async.map(keys, function(key, callback){ | |
var key_trip_id = key.match(trip_id_regex); | |
if(key_trip_id[0] == trip_id){ | |
trip_id_keys.push(key); | |
} | |
}) | |
results["keys"] = trip_id_keys; | |
res.json(results); | |
} | |
if(error){ | |
console.log("Error from getRedisKeysByTripId--->>", error); | |
return "Error" | |
} | |
}); | |
}); | |
app.post('/getRedisDataByTripId', (req, res) => { | |
var trip_id = req.body.trip_id; | |
var trip_id_regex = /\d*-\d*/; | |
redisClient.keys('*', function (error, keys) { | |
if(keys){ | |
async.map(keys, function(key, callback) { | |
redisClient.get(key, function (error, value) { | |
if (error){ | |
callback(error, null); | |
} | |
var key_trip_id = key.match(trip_id_regex); | |
var trip_id_keys = {}; | |
if(key_trip_id[0] == trip_id){ | |
trip_id_keys['key']=key; | |
trip_id_keys['data']=value; | |
} | |
callback(null, trip_id_keys); | |
}); | |
},function (error, result) { | |
result = result.filter( | |
obj => !(obj && Object.keys(obj).length == 0) | |
); | |
res.json({"data":result}); | |
if (error){ | |
console.log(error); | |
return "error"; | |
} | |
}); | |
} | |
if(error){ | |
console.log("Error from getRedisDataByTripId--->>", error); | |
return "Error" | |
} | |
}); | |
}); | |
app.post('/deleteRedisKeysByTripId', (req, res) => { | |
var trip_id = req.body.trip_id; | |
var trip_id_regex = /\d*-\d*/; | |
redisClient.keys('*', function (error, keys) { | |
if(keys){ | |
var results = {}; | |
var trip_id_keys = []; | |
async.map(keys, function(key, callback){ | |
var key_trip_id = key.match(trip_id_regex); | |
if(key_trip_id[0] == trip_id){ | |
trip_id_keys.push(key); | |
} | |
}) | |
redisClient.del(trip_id_keys, function(err, response){ | |
if(response != null){ | |
console.log("deleted"); | |
}else{ | |
console.log("error"); | |
} | |
}); | |
results["keys"] = trip_id_keys; | |
res.json(results); | |
} | |
if(error){ | |
console.log("Error from deleteRedisKeysByTripId--->>", error); | |
return "Error" | |
} | |
}); | |
}); | |
let port = 3005; | |
app.listen(port, () => console.log(`Server is listening on port ${port}.`)); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const express = require("express"); | |
var bodyParser = require("body-parser"); | |
var app = express(); | |
app.use(bodyParser.urlencoded({ extended: false })); | |
app.use(bodyParser.json()); | |
var redis = require("redis"); | |
var async = require("async"); | |
const e = require("express"); | |
let redisClient = redis.createClient("6379","redis-db"); | |
app.post('/redisActions', (req, res) => { | |
var client_id = req.body.client_id; | |
var trip_id = req.body.trip_id; | |
var api_type = req.body.api_type; | |
var query = req.body.query; | |
var trip_id_regex = /\d*-\d*/; | |
var client_id_regex = /\d*-/; | |
redisClient.keys('*', function (error, keys) { | |
if(error){ | |
console.log("Error from redisActions--->>", error); | |
return "Error" | |
} | |
if(keys && api_type == "getAllRedisKeys"){ | |
var results = {}; | |
results["keys"] = keys; | |
res.json(results); | |
}else if(keys && api_type == "getAllRedisData"){ | |
async.map(keys, function(key, callback) { | |
var data = {}; | |
redisClient.get(key, function (error, value) { | |
if (error){ | |
callback(error, null); | |
} | |
data['key']=key; | |
data['data']=value; | |
callback(null, data); | |
}); | |
},function (error, result) { | |
res.json({"data":result}); | |
if (error){ | |
console.log(error); | |
return "error"; | |
} | |
}); | |
}else if(keys && api_type == "getRedisDataByClientId"){ | |
if(Array.isArray(client_id)){ | |
var result_all = []; | |
async.map(client_id, function(clients, callbackCB){ | |
async.map(keys, function(key, callback) { | |
redisClient.get(key, function (error, value) { | |
if (error){ | |
callback(error, null); | |
} | |
var key_client_id = key.match(client_id_regex); | |
key_client_id = key_client_id[0].split("-")[0]; | |
var client_id_keys = {}; | |
if(key_client_id == clients){ | |
client_id_keys['key']=key; | |
client_id_keys['data']=value; | |
} | |
callback(null, client_id_keys); | |
}); | |
},function (error, result) { | |
if (error){ | |
console.log(error); | |
return "error"; | |
} | |
result = result.filter( | |
obj => !(obj && Object.keys(obj).length == 0) | |
); | |
result_all.push(result); | |
callbackCB(null, result_all); | |
}); | |
},function final (error, result) { | |
if (error){ | |
console.log(error); | |
return "error"; | |
} | |
res.json({"data":result_all}); | |
}); | |
}else{ | |
async.map(keys, function(key, callback) { | |
redisClient.get(key, function (error, value) { | |
if (error){ | |
callback(error, null); | |
} | |
var key_client_id = key.match(client_id_regex); | |
key_client_id = key_client_id[0].split("-")[0]; | |
var client_id_keys = {}; | |
if(key_client_id == client_id){ | |
client_id_keys['key']=key; | |
client_id_keys['data']=value; | |
} | |
callback(null, client_id_keys); | |
}); | |
},function (error, result) { | |
result = result.filter( | |
obj => !(obj && Object.keys(obj).length == 0) | |
); | |
res.json({"data":result}); | |
if (error){ | |
console.log(error); | |
return "error"; | |
} | |
}); | |
} | |
}else if(keys && api_type == "getRedisKeysByClientId"){ | |
if(Array.isArray(client_id)){ | |
var result_all = []; | |
async.map(client_id, function(clients, callbackCB){ | |
async.map(keys, function(key, callback){ | |
var client_id_keys = {} | |
client_id_keys[clients] = {}; | |
var key_client_id = key.match(client_id_regex); | |
key_client_id = key_client_id[0].split("-")[0]; | |
if(key_client_id == clients){ | |
client_id_keys[clients]["key"] = key; | |
result_all.push(client_id_keys); | |
} | |
}); | |
callbackCB(null, result_all); | |
},function final (error, result) { | |
if (error){ | |
console.log(error); | |
return "error"; | |
} | |
result_all = result_all.filter( | |
obj => !(obj && Object.keys(obj).length == 0) | |
); | |
res.json({"data":result_all}); | |
}); | |
}else{ | |
var results = {}; | |
var client_id_keys = []; | |
async.map(keys, function(key, callback){ | |
var key_client_id = key.match(client_id_regex); | |
key_client_id = key_client_id[0].split("-")[0]; | |
if(key_client_id == client_id){ | |
client_id_keys.push(key); | |
} | |
}) | |
results["keys"] = client_id_keys; | |
res.json(results); | |
} | |
}else if(keys && api_type == "deleteRedisKeysByClientId"){ | |
var client_id_keys = []; | |
if(Array.isArray(client_id)){ | |
async.map(client_id, function(clients, callbackCB){ | |
async.map(keys, function(key, callback){ | |
var key_client_id = key.match(client_id_regex); | |
key_client_id = key_client_id[0].split("-")[0]; | |
if(key_client_id == clients){ | |
client_id_keys.push(key); | |
} | |
}); | |
callbackCB(null, client_id_keys); | |
},function final (error, result) { | |
if (error){ | |
console.log(error); | |
return "error"; | |
} | |
client_id_keys = client_id_keys.filter( | |
obj => !(obj && Object.keys(obj).length == 0) | |
); | |
}); | |
}else{ | |
var results = {}; | |
var client_id_keys = []; | |
async.map(keys, function(key, callback){ | |
var key_client_id = key.match(client_id_regex); | |
key_client_id = key_client_id[0].split("-")[0]; | |
if(key_client_id == client_id){ | |
client_id_keys.push(key); | |
redisClient.del(key); | |
} | |
}); | |
} | |
redisClient.del(client_id_keys, function(err, response){ | |
if(response != null){ | |
console.log("deleted"); | |
}else{ | |
console.log("error"); | |
} | |
}); | |
var result = {}; | |
result["keys"] = client_id_keys; | |
res.json(result); | |
}else if(keys && api_type == "getRedisKeysByTripId"){ | |
if(Array.isArray(trip_id)){ | |
var result_all = []; | |
async.map(trip_id, function(trip_ids, callbackCB){ | |
async.map(keys, function(key, callback){ | |
var trip_id_keys = {} | |
trip_id_keys[trip_ids] = {}; | |
var key_trip_id = key.match(trip_id_regex); | |
key_trip_id = key_trip_id[0]; | |
if(key_trip_id == trip_ids){ | |
trip_id_keys[trip_ids] = key; | |
result_all.push(trip_id_keys); | |
} | |
}); | |
callbackCB(null, result_all); | |
},function final (error, result) { | |
if (error){ | |
console.log(error); | |
return "error"; | |
} | |
result_all = result_all.filter( | |
obj => !(obj && Object.keys(obj).length == 0) | |
); | |
res.json({"data":result_all}); | |
}); | |
}else{ | |
var results = {}; | |
var trip_id_keys = []; | |
async.map(keys, function(key, callback){ | |
var key_trip_id = key.match(trip_id_regex); | |
if(key_trip_id[0] == trip_id){ | |
trip_id_keys.push(key); | |
} | |
}) | |
results["keys"] = trip_id_keys; | |
res.json(results); | |
} | |
}else if(keys && api_type == "getRedisDataByTripId"){ | |
if(Array.isArray(trip_id)){ | |
var result_all = []; | |
async.map(trip_id, function(trip_ids, callbackCB){ | |
async.map(keys, function(key, callback) { | |
redisClient.get(key, function (error, value) { | |
if (error){ | |
callback(error, null); | |
} | |
var key_trip_id = key.match(trip_id_regex); | |
key_trip_id = key_trip_id[0]; | |
var trip_id_keys = {}; | |
if(key_trip_id == trip_ids){ | |
trip_id_keys['key']=key; | |
trip_id_keys['data']=value; | |
} | |
callback(null, trip_id_keys); | |
}); | |
},function (error, result) { | |
if (error){ | |
console.log(error); | |
return "error"; | |
} | |
result = result.filter( | |
obj => !(obj && Object.keys(obj).length == 0) | |
); | |
result_all.push(result); | |
callbackCB(null, result_all); | |
}); | |
},function final (error, result) { | |
if (error){ | |
console.log(error); | |
return "error"; | |
} | |
res.json({"data":result_all}); | |
}); | |
}else{ | |
async.map(keys, function(key, callback) { | |
redisClient.get(key, function (error, value) { | |
if (error){ | |
callback(error, null); | |
} | |
var key_trip_id = key.match(trip_id_regex); | |
var trip_id_keys = {}; | |
if(key_trip_id[0] == trip_id){ | |
trip_id_keys['key']=key; | |
trip_id_keys['data']=value; | |
} | |
callback(null, trip_id_keys); | |
}); | |
},function (error, result) { | |
result = result.filter( | |
obj => !(obj && Object.keys(obj).length == 0) | |
); | |
res.json({"data":result}); | |
if (error){ | |
console.log(error); | |
return "error"; | |
} | |
}); | |
} | |
}else if(keys && api_type == "deleteRedisKeysByTripId"){ | |
if(Array.isArray(trip_id)){ | |
var results = {}; | |
var trip_id_keys = []; | |
async.map(trip_id, function(trip_ids, callbackCB){ | |
async.map(keys, function(key, callback){ | |
var key_trip_id = key.match(trip_id_regex); | |
key_trip_id = key_trip_id[0]; | |
if(key_trip_id == trip_ids){ | |
trip_id_keys.push(key); | |
} | |
}); | |
callbackCB(null, trip_id_keys); | |
},function final (error, result) { | |
if (error){ | |
console.log(error); | |
return "error"; | |
} | |
trip_id_keys = trip_id_keys.filter( | |
obj => !(obj && Object.keys(obj).length == 0) | |
); | |
}); | |
}else{ | |
var results = {}; | |
var trip_id_keys = []; | |
async.map(keys, function(key, callback){ | |
var key_trip_id = key.match(trip_id_regex); | |
if(key_trip_id[0] == trip_id){ | |
trip_id_keys.push(key); | |
} | |
}) | |
} | |
redisClient.del(trip_id_keys, function(err, response){ | |
if(response != null){ | |
console.log("deleted"); | |
}else{ | |
console.log("error"); | |
} | |
}); | |
results["keys"] = trip_id_keys; | |
res.json(results); | |
}else{ | |
var accepted_parms = ["getAllRedisKeys", "getAllRedisData", "getRedisDataByClientId", "getRedisKeysByClientId", "deleteRedisKeysByClientId", "getRedisKeysByTripId", "getRedisDataByTripId", "deleteRedisKeysByTripId"]; | |
res.json({"Error in params. Check for the params in the body. Accepted api_type: ": accepted_parms}); | |
} | |
}); | |
}); | |
let port = 3005; | |
app.listen(port, () => console.log(`Server is listening on port ${port}.`)); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment