Class: SearchKit::CLI::Events

Inherits:
Thor
  • Object
show all
Defined in:
lib/search_kit/cli/events.rb

Instance Method Summary collapse

Methods inherited from Thor

document

Instance Method Details

#complete(id) ⇒ Object



22
23
24
25
26
27
28
29
# File 'lib/search_kit/cli/events.rb', line 22

def complete(id)
  client.complete(id)
  messages.info I18n.t('cli.events.complete.success', id: id)
rescue Errors::EventNotFound
  messages.not_found
rescue Faraday::ConnectionFailed
  messages.no_service
end

#pending(channel = nil) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/search_kit/cli/events.rb', line 32

def pending(channel = nil)
  events = channel ? client.pending(channel) : client.index

  message_path = %w(cli events pending success)
  message_path << (channel ? 'filtered' : 'index')
  message_path << (events.any? ? 'discovered' : 'empty')
  message = I18n.t(message_path.join('.'), channel: channel)

  messages.info(message)
  events.each { |event| messages.info(event.to_json) }
rescue Errors::BadRequest
  messages.bad_request
rescue Errors::Unauthorized
  messages.unauthorized
rescue Errors::Unprocessable
  messages.unprocessable
rescue Faraday::ConnectionFailed
  messages.no_service
end

#publish(channel, payload) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/search_kit/cli/events.rb', line 53

def publish(channel, payload)
  payload = JSON.parse(payload, symbolize_names: true)
  event   = client.publish(channel, payload)

  message = I18n.t('cli.events.publish.success',
    channel: channel,
    id:      event.id
  )

  messages.info(message)
rescue Errors::BadRequest
  messages.bad_request
rescue Errors::Unauthorized
  messages.unauthorized
rescue Errors::Unprocessable
  messages.unprocessable
rescue Faraday::ConnectionFailed
  messages.no_service
rescue JSON::ParserError
  messages.json_parse_error
end

#status(id) ⇒ Object



76
77
78
79
80
81
82
83
84
85
86
# File 'lib/search_kit/cli/events.rb', line 76

def status(id)
  event  = client.show(id)
  status = event.state

  message = I18n.t('cli.events.status.success', id: id, status: status)
  messages.info(message)
rescue Errors::EventNotFound
  messages.not_found
rescue Faraday::ConnectionFailed
  messages.no_service
end