Public API for a society manager application

create-society.js 1.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. var admins_str = admins;
  19. admins = JSON.parse(admins);
  20. redis.hget(soc_query, "name", function (err, result) {
  21. if (result) {
  22. res.send({"success": 0,
  23. "error": 2});
  24. } else {
  25. redis.get("auth-key:" + auth_key, function (err,result) {
  26. var username = result;
  27. if (admins.indexOf(result) !== -1) {
  28. redis.hset(soc_query, "name", society_name);
  29. redis.hset(soc_query, "admins", admins_str);
  30. redis.hset(soc_query, "description", description);
  31. redis.hset(soc_query, "users", admins_str);
  32. res.send({"success": 1,
  33. "society" : {
  34. "name": society_name,
  35. "admins": admins,
  36. "description": description,
  37. "users": admins
  38. },
  39. "error": 0});
  40. } else {
  41. res.send({"success": 0,
  42. "error": 3});
  43. }
  44. });
  45. }
  46. });
  47. } else {
  48. res.send({"success": 0,
  49. "error": 1})
  50. }
  51. }