Public API for a society manager application

society-controller.js 2.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. var Redis = require("ioredis");
  2. var redis = new Redis();
  3. module.exports = {
  4. get_society: function (soc_name, complete) {
  5. redis.hgetall("society:" + soc_name, function (err, result) {
  6. if (result.name) {
  7. result.users = JSON.parse(result.users);
  8. result.admins = JSON.parse(result.admins);
  9. complete({
  10. "society": result,
  11. "error": 0
  12. })
  13. } else {
  14. complete({
  15. "society": {},
  16. "error": 1
  17. })
  18. }
  19. });
  20. },
  21. create_society: function (soc_name, admins, description, auth, complete) {
  22. var society_name = decodeURIComponent(soc_name);
  23. var soc_query = "society:" + society_name;
  24. admins = decodeURIComponent(admins);
  25. description = decodeURIComponent(description);
  26. var admins_str = admins;
  27. admins = JSON.parse(admins);
  28. redis.hget(soc_query, "name", function (err, result) {
  29. if (result) {
  30. complete({"success": 0,
  31. "error": 2});
  32. } else {
  33. redis.get("auth-key:" + auth, function (err,result) {
  34. var username = result;
  35. if (admins.indexOf(result) !== -1) {
  36. redis.hset(soc_query, "name", society_name);
  37. redis.hset(soc_query, "admins", admins_str);
  38. redis.hset(soc_query, "description", description);
  39. redis.hset(soc_query, "users", admins_str);
  40. complete({"success": 1,
  41. "society" : {
  42. "name": society_name,
  43. "admins": admins,
  44. "description": description,
  45. "users": admins
  46. },
  47. "error": 0});
  48. } else {
  49. complete({"success": 0,
  50. "error": 3});
  51. }
  52. });
  53. }
  54. });
  55. },
  56. get_user_list: function (soc_name, complete) {
  57. this.get_society(soc_name, function (result) {
  58. if (result.society.name) {
  59. complete(result.society.users);
  60. } else {
  61. complete([]);
  62. }
  63. });
  64. },
  65. get_admin_list: function (soc_name, complete) {
  66. this.get_society(soc_name, function (result) {
  67. if (result.society.name) {
  68. complete(result.society.admins);
  69. } else {
  70. complete([]);
  71. }
  72. })
  73. },
  74. join_society: function (soc_name, auth, complete) {
  75. },
  76. leave_society: function (soc_name, auth, complete) {
  77. }
  78. }