首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何用Lita.io创建一个简单的问卷?

我如何用Lita.io创建一个简单的问卷?
EN

Stack Overflow用户
提问于 2017-04-06 14:42:16
回答 1查看 115关注 0票数 0

我尝试在Lita中实现一个小问卷作为样本:

您想为哪个系统打开一个呼叫? SYSInitials 你有什么问题? 我忘记密码了 ,谢谢!你的电话被打开了!

有什么能帮上忙的吗?

所以,我试试看:

代码语言:javascript
复制
module Lita
  module Handlers
    class Helpdesk < Handler
      on :shut_down_complete, :clear_context

      route(/^abrir chamado$/i, :abrir_chamado)
      route(/^.*$/i, :motivo)
      http.get '/info', :web

      def motivo(response)
        return unless context == 'abrir_chamado'
        response.reply('Thanks! Your call was opened!')
        clear_context
      end

      def abrir_chamado(response)
        redis.set(:context, :abrir_chamado)
        user = response.user
        response.reply(
          %(Hello #{user.name}, What is your problem?)
        )
      end

      def context
        @contetx ||= redis.get(:context)
      end

      def clear_context
        redis.del(:context)
      end

      Lita.register_handler(Helpdesk)
    end
  end
end

但是当我注册时,:informar_motivo route在通过:abrir_chamado route之后也是匹配的:informar_motivo路由。

但我需要:

me: abrir chamado Lita: Hello用户,您有什么问题? 我:,我忘了密码 丽塔:,谢谢!你的电话被打开了!

EN

回答 1

Stack Overflow用户

发布于 2017-04-07 14:24:02

我找到了一个丑陋的解决方案,但奏效了:P

代码语言:javascript
复制
module Lita
  module Handlers
    class Helpdesk < Handler
      on :shut_down_complete, :clear_context
      on :unhandled_message, :motivo

      route(/^abrir chamado$/i, :abrir_chamado)

      http.get '/info', :web

      def motivo(payload)
        response = payload[:message]
        return unless context == 'abrir_chamado'
        response.reply('Thanks! Your call was opened!')
        clear_context
      end

      def abrir_chamado(response)
        redis.set(:context, :abrir_chamado)
        user = response.user
        response.reply(
          %(Hello #{user.name}, What is your problem?)
        )
      end

      def context
        @contetx ||= redis.get(:context)
      end

      def clear_context
        redis.del(:context)
      end

      Lita.register_handler(Helpdesk)
    end
  end
end

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43258415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档