telegram_workflow 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: edd8db5bb9937c5ae2154339550dc286f10e94c4b8290419ba9795d3e92a0f23
4
- data.tar.gz: 26e421252440cbc137c6b25529e1c6cb8746aa63df41afc212724cd5229b8cc5
3
+ metadata.gz: c96cb2e0a64ca84710249746fba7e205101fa03d3708f154e7b9532133c550f6
4
+ data.tar.gz: edf5c725fb5100eea709c375657026cc80d3e16075de537422f55604dea150b7
5
5
  SHA512:
6
- metadata.gz: 827dae61b2e7a63b2f4a36809e72fb79e67e619c8ec3570b11b6a1a1f0fdecb19d445a5ac91005ca3020d2baea9c8eb145311e59f449c411c023b09679be8978
7
- data.tar.gz: 83d320d61b074092d6bf6a7783d73a88bed3b04f0ba83e2261108bbf5fc80760694d25736ff01693a4c3f81ce3fe7ed816ebb5298400cb19a3a39fa70255a718
6
+ metadata.gz: fb13268c4f33b5add25b82ccc628199aaec2571e57e8731f88b417c5727bb9c9d7639d860a7f6ef9af09110ba12a39db5c4d2ebbd777ea40e2f54c39d0d893ae
7
+ data.tar.gz: 5cdeb13d1098f17784dfdca787e2f73a0c8d8ee6cd704d42c5894b3de4b714b2cf1118ffbcd2f3391aa0e977b8a1c7806b3b3f606cf51e85e3df6074b6a61204
@@ -1,4 +1,5 @@
1
1
  require "http"
2
+ require "retryable"
2
3
 
3
4
  module TelegramWorkflow
4
5
  module Stores
@@ -129,7 +129,9 @@ class TelegramWorkflow::Client
129
129
  end
130
130
 
131
131
  def make_request(action, params)
132
- response = ::HTTP.post("#{@api_url}/#{action}", json: { chat_id: @chat_id, **params })
132
+ response = ::Retryable.retryable(tries: 3, on: HTTP::ConnectionError) do
133
+ ::HTTP.post("#{@api_url}/#{action}", json: { chat_id: @chat_id, **params })
134
+ end
133
135
 
134
136
  if response.code != 200
135
137
  raise TelegramWorkflow::Errors::ApiError, response.parse["description"]
@@ -70,4 +70,8 @@ class TelegramWorkflow::Params
70
70
  match = /\A\/(startgroup|start) (?<payload>.+)\z/.match(message_text)
71
71
  match["payload"] if match
72
72
  end
73
+
74
+ def to_h
75
+ @params
76
+ end
73
77
  end
@@ -1,3 +1,3 @@
1
1
  module TelegramWorkflow
2
- VERSION = "1.1.0"
2
+ VERSION = "1.2.0"
3
3
  end
@@ -7,7 +7,7 @@ class TelegramWorkflow::Workflow
7
7
  @logger = TelegramWorkflow.config.logger
8
8
 
9
9
  if @params.start?
10
- @session.clear
10
+ set_current_action(TelegramWorkflow.config.start_action)
11
11
  end
12
12
 
13
13
  chat_id = @session.read(:chat_id) || @session.write(:chat_id, @params.chat_id)
@@ -19,7 +19,7 @@ class TelegramWorkflow::Workflow
19
19
  shared_step_result = current_action.shared
20
20
 
21
21
  if shared_step_result == :__continue
22
- @logger.info "[TelegramWorkflow] Processing by #{current_action.class.name}##{current_step}"
22
+ log_request
23
23
  current_action.public_send(current_step) # setup callbacks
24
24
  current_action.__run_on_message # run a callback
25
25
  else
@@ -43,6 +43,14 @@ class TelegramWorkflow::Workflow
43
43
 
44
44
  private
45
45
 
46
+ def log_request
47
+ @logger.info "[TelegramWorkflow] Processing by #{current_action.class.name}##{current_step}"
48
+
49
+ if TelegramWorkflow.config.webhook_url.nil?
50
+ @logger.info "[TelegramWorkflow] Parameters: #{@params.to_h}"
51
+ end
52
+ end
53
+
46
54
  def current_action
47
55
  @current_action ||= begin
48
56
  action_class = if action = @session.read(:current_action)
@@ -14,6 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.metadata["source_code_uri"] = spec.homepage
15
15
 
16
16
  spec.add_dependency "http"
17
+ spec.add_dependency "retryable"
17
18
  spec.add_development_dependency "rspec", "~> 3.9"
18
19
  spec.add_development_dependency "activesupport", "~> 5.2.0"
19
20
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: telegram_workflow
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roman Samoilov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-06-02 00:00:00.000000000 Z
11
+ date: 2020-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: retryable
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rspec
29
43
  requirement: !ruby/object:Gem::Requirement