Class: EurekaBot::Tg::Resolver

Inherits:
Resolver
  • Object
show all
Defined in:
lib/eureka_bot/tg/resolver.rb

Instance Method Summary collapse

Instance Method Details

#callback_queryObject



62
63
64
# File 'lib/eureka_bot/tg/resolver.rb', line 62

def callback_query
  message['callback_query'].presence
end

#controller_namespaceObject



54
55
56
# File 'lib/eureka_bot/tg/resolver.rb', line 54

def controller_namespace
  EurekaBot::Tg::Controller
end

#resolveObject



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/eureka_bot/tg/resolver.rb', line 2

def resolve

  if callback_query.present?
    version, controller, action, *data = callback_query['data'].split(':')
    return {
        controller: controller,
        action:     action.to_sym,
        params:     {raw: data, version: version}
    }
  end

  if simple_message.present?
    if simple_message['text'].to_s[0] == '/'
      parts = simple_message['text'].split(' ')
      return {
          controller: 'commands',
          action:     parts[0].gsub('/', '').to_sym,
          params:     {raw: parts[1..-1], version: 'v1'}
      }
    end

    if simple_message['photo'].present?
      return {
          controller: 'photos',
          action:     :photo,
          params:     {photos: simple_message['photo'], version: 'v1'}
      }
    end

    if simple_message['document'].present?
      return {
          controller: 'documents',
          action:     :document,
          params:     {document: simple_message['document'], version: 'v1'}
      }
    end

    if simple_message['text'].present?
      return {
          controller: 'text',
          action:     :text,
          params:     {raw: simple_message['text'], version: 'v1'}
      }
    end
  end

  {
      controller: 'system',
      action:     :nothing
  }
end

#simple_messageObject



58
59
60
# File 'lib/eureka_bot/tg/resolver.rb', line 58

def simple_message
  message['message'].presence
end