wa_strapi
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

71 行
2.2 KiB

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