Public API for a society manager application

create-society.js 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. var Redis = require("ioredis");
  2. var redis = new Redis();
  3. module.exports = {
  4. perform: function(a,b) {
  5. perform(a,b);
  6. }
  7. }
  8. var perform = function(req,res) {
  9. var society_name = req.body.society || req.query.society;
  10. var auth_key = req.body.auth || req.query.auth;
  11. var admins = req.body.admins || req.query.admins;
  12. var description = req.body.description || req.query.description;
  13. if (society_name && auth_key && admins && description) {
  14. var soc_query = "society:" + society_name;
  15. society_name = decodeURIComponent(society_name);
  16. admins = decodeURIComponent(admins);
  17. description = decodeURIComponent(description);
  18. admins = JSON.parse(admins);
  19. redis.hget(soc_query, "name", function (err, result) {
  20. if (result) {
  21. res.send({"success": 0,
  22. "error": 2});
  23. } else {
  24. redis.get("auth-key:" + auth_key, function (err,result) {
  25. var username = result;
  26. if (admins.indexOf(result) !== -1) {
  27. redis.hset(soc_query, "name", society_name);
  28. redis.hset(soc_query, "admins", JSON.stringify(admins));
  29. redis.hset(soc_query, "description", description);
  30. res.send({"success": 1,
  31. "society" : {
  32. "name": society_name,
  33. "admins": JSON.stringify(admins),
  34. "description": description
  35. },
  36. "error": 0});
  37. } else {
  38. res.send({"success": 0,
  39. "error": 3});
  40. }
  41. });
  42. }
  43. });
  44. } else {
  45. res.send({"success": 0,
  46. "error": 1})
  47. }
  48. }