handleMessage()

in loginconnect_directintegrator/services/receive.js [30:76]


  handleMessage() {
    let event = this.webhookEvent;

    let responses;
    let type = 'id';
    try {
      if (event.message) {
        let message = event.message;

        if (message.quick_reply) {
          responses = this.handleQuickReply();
        } else if (message.attachments) {
          responses = this.handleAttachmentMessage();
        } else if (message.text) {
          responses = this.handleTextMessage();
        }
      } else if (event.postback) {
        responses = this.handlePostback();
      } else if (event.referral) {
        responses = this.handleReferral();
      } else if (event.optin) {
        console.log(`Message optin ${JSON.stringify(event)}`);
        responses = this.handleLoginConnectOptin();
        type = 'login_id';
        // TODO handle additional optin scenarios
        // sending hardwired sample post purchase update message
        this.sendMessageWithMessageTagToLoginID(responses[0]);

      }
    } catch (error) {
      console.error(error);
      responses = {
        text: `An error has occured: '${error}'. We have been notified and \
        will fix the issue shortly!`
      };
    }

    if (Array.isArray(responses)) {
      let delay = 0;
      for (let response of responses) {
        this.sendMessage(response, delay * 2000, type);
        delay++;
      }
    } else {
      this.sendMessage(responses, type);
    }
  }