wa_strapi
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

72 satır
2.3 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. sessionId: data["DATA"].wid._serialized,
  43. }
  44. );
  45. } else {
  46. await strapi.services["session-data"].create({
  47. name: data["DATA"].pushname,
  48. device_manufacturer:
  49. data["DATA"].phone.device_manufacturer,
  50. device_model: data["DATA"].phone.device_model,
  51. platform: data["DATA"].platform,
  52. os_version: data["DATA"].phone.os_version,
  53. phonenumber: data["DATA"].wid.user,
  54. session_data: data["DATA"].sessionData,
  55. sessionId: data["DATA"].wid._serialized,
  56. });
  57. // console.log(entry);
  58. }
  59. }
  60. res.write(JSON.stringify(data));
  61. if (
  62. data["STATUS"] == 0 ||
  63. (data["STATUS"] == 1 && data["TYPE"] == "READY")
  64. ) {
  65. return res.end();
  66. }
  67. });
  68. },
  69. };