Advertisement
Guest User

Untitled

a guest
Nov 8th, 2018
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.50 KB | None | 0 0
  1. // Arquivo cloud-functions.js
  2. const destroyAllSessions = (Parse) => {
  3. let query = new Parse.Query(Parse.Session);
  4.  
  5. query.find({
  6. success: (results) => {
  7. for (let session of results) {
  8. session.destroy({useMasterKey: true});
  9. }
  10. return true;
  11. },
  12. error: (error) => {
  13. return false;
  14. },
  15. useMasterKey: true
  16. });
  17. };
  18.  
  19. module.exports.echo = (Parse) => {
  20. return (request, response) => {
  21. response.success({ code: 200, message: request.params.string });
  22. };
  23. };
  24.  
  25. module.exports.getUserByField = (Parse) => {
  26. return (request, response) => {
  27. let userQuery = new Parse.Query(Parse.User);
  28. userQuery.equalTo(request.params.field, request.params.value);
  29. userQuery.first({
  30. success: (user) => {
  31. if(user != undefined) {
  32. response.success({ code: 200, message: user });
  33. }
  34. else
  35. response.error(404, "Usuario não encontrado");
  36. },
  37. error: (err) => {
  38. response.error(err);
  39. }
  40. });
  41. };
  42. };
  43.  
  44. module.exports.setUserField = (Parse) => {
  45. return (request, response) => {
  46. let userQuery = new Parse.Query(Parse.User);
  47. userQuery.equalTo("objectId", request.params.userId);
  48. userQuery.first()
  49. .then(userToUpdate => {
  50. if(userToUpdate !== undefined) {
  51. userToUpdate.set(request.params.field, request.params.value);
  52. userToUpdate.save(null, {useMasterKey:true})
  53. .then(userToUpdate => {
  54. response.success({ code: 200, message: userToUpdate });
  55. })
  56. .catch(err => {
  57. response.error(err);
  58. });
  59. }
  60. else
  61. response.error(404, "Usuario não encontrado");
  62. })
  63. .catch(err => {
  64. response.error(err);
  65. });
  66. };
  67. };
  68.  
  69. module.exports.unsetUserField = (Parse) => {
  70. return (request, response) => {
  71. let userQuery = new Parse.Query(Parse.User);
  72. userQuery.equalTo("objectId", request.params.userId);
  73. userQuery.first()
  74. .then(userToUpdate => {
  75. if(userToUpdate !== undefined) {
  76. userToUpdate.unset(request.params.field);
  77. userToUpdate.save(null, {useMasterKey:true})
  78. .then(userToUpdate => {
  79. response.success({ code: 200, message: userToUpdate });
  80. })
  81. .catch(err => {
  82. response.error(err);
  83. });
  84. }
  85. else
  86. response.error(404, "Usuario não encontrado");
  87. })
  88. .catch(err => {
  89. response.error(err);
  90. });
  91. };
  92. };
  93.  
  94. module.exports.registerUser = (Parse) => {
  95. return (request, response) => {
  96. if(request.params.username == undefined ||
  97. request.params.password == undefined ||
  98. request.params.interface == undefined ||
  99. request.params.interfaceId == undefined ||
  100. request.params.name == undefined) {
  101. response.error(400, "Usuario precisa de username, password, interface, interfaceId e name");
  102. }
  103. let user = new Parse.User();
  104. user.set("username", request.params.username);
  105. user.set("password", request.params.password);
  106. user.set(request.params.interface, request.params.interfaceId);
  107. user.set("name", request.params.name);
  108.  
  109. user.signUp(null)
  110. .then((newUser) => {
  111. destroyAllSessions(Parse);
  112. response.success({ code: 200, message: newUser });
  113. })
  114. .catch((err) => response.error(err));
  115. };
  116. };
  117.  
  118. module.exports.loginUser = (Parse) => {
  119. return (request, response) => {
  120. Parse.User.logIn(request.params.username, request.params.password)
  121. .then((user) => {
  122. destroyAllSessions(Parse);
  123. response.success({ code: 200, message: user.toJSON() });
  124. })
  125. .catch((err) => response.error(err));
  126. };
  127. };
  128.  
  129. module.exports.setContext = (Parse) => {
  130. return (request, response) => {
  131. if(request.params.interface == undefined ||
  132. request.params.interfaceId == undefined ||
  133. request.params.context == undefined) {
  134. response.error(400, "Precisa de interface, interfaceId e Context");
  135. }
  136. let Context = Parse.Object.extend('Context');
  137. let contextQuery = new Parse.Query(Context);
  138. let myContext = new Context();
  139. contextQuery.equalTo(request.params.interface, request.params.interfaceId);
  140. contextQuery.first()
  141. .then(contextToUpdate => {
  142. if(contextToUpdate != undefined)
  143. myContext = contextToUpdate;
  144. else
  145. myContext.set(request.params.interface, request.params.interfaceId);
  146.  
  147. myContext.set("context", request.params.context);
  148.  
  149. myContext.save(null)
  150. .then(newContext => {
  151. response.success({code: 200, message: newContext});
  152. })
  153. .catch(err => {
  154. response.error(err);
  155. });
  156. })
  157. .catch(err => {
  158. response.error(err);
  159. });
  160. };
  161. };
  162.  
  163. module.exports.getContextByInterfaceId = (Parse) => {
  164. return (request, response) => {
  165. let Context = Parse.Object.extend('Context');
  166. let contextQuery = new Parse.Query(Context);
  167. contextQuery.equalTo(request.params.interface, request.params.interfaceId);
  168. contextQuery.first()
  169. .then(contextToFind => {
  170. if(contextToFind != undefined)
  171. response.success({code: 200, message: contextToFind.toJSON()});
  172. else
  173. response.error(404, "Context não encontrado");
  174. })
  175. .catch(err => {
  176. response.error(err);
  177. });
  178. };
  179. };
  180.  
  181. module.exports.removeStoredPasswords = (Parse) => {
  182. return (request, status) => {
  183. const date = new Date();
  184. const timeNow = date.getTime();
  185. const intervalOfTime = 24*60*60*1000; // the time set is 24 hours in milliseconds
  186. const timeThen = timeNow - intervalOfTime;
  187.  
  188. // Limit date
  189. const queryDate = new Date();
  190. queryDate.setTime(timeThen);
  191.  
  192. // Will query all users then check for '_password' on fields and unset all
  193. const query = new Parse.Query(Parse.User);
  194. query.find()
  195. .then(result => {
  196. result.forEach(user => {
  197. Object.keys(user.attributes).forEach(attr => {
  198. if (attr.includes('_password'))
  199. user.unset(attr);
  200. });
  201. user.save(null, {useMasterKey:true});
  202. });
  203. status.success({ code: 200, message: 'Senhas apagadas com sucesso' });
  204. })
  205. .catch(err => status.error({ code : 500, message: 'Erro ao buscar usuarios' }));
  206. };
  207. };
  208. // Fim do arquivo cloud-functions.js
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement