Pusher - с функциями Wix HTTP

Я пытаюсь интегрировать Pusher с HTTP-функциями Wix

Например: на сайт Wix отправляется запрос GET (путь: '/ findItems'). После того, как запрос сделан, я хочу проверить новые вставки элементов в базу данных. Я обнаружил, что могу сделать это с помощью ловушки afterInsert. . Когда крючок подключен, я хочу активировать Pusher.
Это код, который я использую сейчас http-functions.js:

import { ok, created, notFound, serverError } from 'wix-http-functions';
import wixData from 'wix-data';
import Pusher from "pusher";

const pusher = new Pusher({
    appId: "xxxxx",
    key: "xxxxxxxxxxxxxxx",
    secret: "xxxxxxxxxxxx",
    cluster: "xxxx",
    useTLS: true
});

export function get_findItems(request) {
 
 let options = {
 "headers": {
 "Content-Type": "application/json"
        }
    };
 
 return wixData.query("users")
        .eq("firstName", request.path[0])
        .eq("lastName", request.path[1])
        .find()
        .then((results) => {

 if (results.items.length > 0) {
                options.body = {
 "items": results.items
                };

 return ok(options);
            }
 
            options.body = {
 "error": `'${request.path[0]} ${request.path[1]}' was not found`
            };
 return notFound(options);
        })

        .catch((error) => {
            options.body = {
 "error": error
            };
 return serverError(options);
        });
}

export function post_newItem(request) {
 let options = {
 "headers": {
 "Content-Type": "application/json"
    }
  };

 return request.body.text()
    .then( (body) => {
 
 return wixData.insert("users", JSON.parse(body));
    } )
    .then( (results) => {
      options.body = {
 "inserted": results
      };
 return created(options);
    } )

    .catch( (error) => {
      options.body = {
 "error": error
      };
 return serverError(options);
    } );
}

export function users_afterInsert(item, context) {
 let hookContext = context;

    pusher.trigger("channel", "action", {
        firstName: item.firstName,
        lastName: item.lastName
    });

 return item;
}

Но, к сожалению, Pusher не срабатывает. После отладки я обнаружил, что пакет Pusher установлен и работает, но не запускается только в хуке afterInsert!
Любая помощь приветствуется!

Спасибо !


person Ajit Kumar    schedule 16.03.2021    source источник
comment
Ваш тег wix означает - Winows Installer Xml, а не бесплатный конструктор сайтов.   -  person ba-a-aton    schedule 16.03.2021
comment
Ой! Спасибо за исправление!   -  person Ajit Kumar    schedule 16.03.2021


Ответы (1)


Код для ловушки afterInsert должен находиться в бэкэнд-файле с именем data.js, а не в http-functions.js файле, который у вас есть сейчас.

person Sam    schedule 16.03.2021
comment
Спасибо ! Это сработало! - person Ajit Kumar; 16.03.2021