wa_strapi
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

70 wiersze
2.2 KiB

  1. const messageModel = require("../../../model/messageModel");
  2. const { parseMultipartData, sanitizeEntity } = require("strapi-utils");
  3. /**
  4. * Read the documentation (https://strapi.io/documentation/developer-docs/latest/concepts/controllers.html#core-controllers)
  5. * to customize this controller
  6. */
  7. module.exports = {
  8. initiate: async (ctx) => {
  9. ctx.respond = false;
  10. const { req, res } = ctx;
  11. res.setHeader("Content-Type", "text/html; charset=UTF-8");
  12. res.setHeader("Transfer-Encoding", "chunked");
  13. res.writeHead(200);
  14. messageModel.createNewClient(async function (data) {
  15. // console.log(data);
  16. if (data["STATUS"] == 1 && data["TYPE"] == "READY") {
  17. // console.log(data["DATA"]);
  18. let checkExist = await strapi
  19. .query("session-data")
  20. .findOne({ phonenumber: data["DATA"].wid.user });
  21. if (checkExist) {
  22. // messageModel.loadClient(async function(data){
  23. // let state = data.parse(data);
  24. // if (state["STATUS"] == 1 && state["TYPE"] == "READY"){
  25. // let loaded = new Client();
  26. // loaded = state["DATA"];
  27. // await loaded.destroy();
  28. // }
  29. // });
  30. let id = checkExist.id;
  31. await strapi.services["session-data"].update(
  32. { id },
  33. {
  34. name: data["DATA"].pushname,
  35. device_manufacturer:
  36. data["DATA"].phone.device_manufacturer,
  37. device_model: data["DATA"].phone.device_model,
  38. platform: data["DATA"].platform,
  39. os_version: data["DATA"].phone.os_version,
  40. phonenumber: data["DATA"].wid.user,
  41. session_data: data["DATA"].sessionData,
  42. }
  43. );
  44. } else {
  45. await strapi.services["session-data"].create({
  46. name: data["DATA"].pushname,
  47. device_manufacturer:
  48. data["DATA"].phone.device_manufacturer,
  49. device_model: data["DATA"].phone.device_model,
  50. platform: data["DATA"].platform,
  51. os_version: data["DATA"].phone.os_version,
  52. phonenumber: data["DATA"].wid.user,
  53. session_data: data["DATA"].sessionData,
  54. });
  55. // console.log(entry);
  56. }
  57. }
  58. res.write(JSON.stringify(data));
  59. if (
  60. data["STATUS"] == 0 ||
  61. (data["STATUS"] == 1 && data["TYPE"] == "READY")
  62. ) {
  63. return res.end();
  64. }
  65. });
  66. },
  67. };