viberroo 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a661824a1b2c538825640dd7d42f65a8ffcf9179dc73867acd446e5f211d9958
4
- data.tar.gz: 30f03980c6244cb6cf958b9a5bff4404deb61134163a80729c63c3c9a58754a1
3
+ metadata.gz: cfdd2b9cf561f8fe620e7e8fd58c646aded156836519095de599f794022c5771
4
+ data.tar.gz: 394fcb5010e801f8595c2fe33cb5f28d72e95d961a7cf13cb33b8d006dc59a86
5
5
  SHA512:
6
- metadata.gz: 2bd2f511ac9b539c6d4eb52c5bb6b2df6fc7757484af45c4594a6a5ca4ae5fd33268e3648a405b0f239ee052ad2824fc02d919e80d061dd6954f59ba40fcf222
7
- data.tar.gz: 95cd4af8ca90022ddd501b42c3437848b1400a3a71d84793ec08e2df7c018ce3af4bbfa1ca2a26b4cd48485a4e2148ce63b9e9b811503ab55a01ce674a0dbe85
6
+ metadata.gz: 155014f7f40d8730f9ad41c9193dd739caa33b906587e0ff4ba6ed2fe7e3890841c12eff617ec7951cceaecca1923cbb59f5a6eecb24a9bf7ff3a664a4f582ac
7
+ data.tar.gz: 7baf397be2823482dc211c0c3392f3c8bedf981da346e06dc9dae91d41e27db0ce7feb5afdf4d151a65e67bdf9d3a003389cc7ee077123d9dc7f371efa0ee4df
@@ -1,7 +1,10 @@
1
1
  require 'net/http'
2
2
  require 'uri'
3
3
 
4
+ # Namespace for all Viberroo code.
4
5
  module Viberroo
6
+
7
+ # Used for sending requests to Viber API. Each request sends a http POST request to a particular endpoint, each returns http response.
5
8
  class Bot
6
9
  def initialize(token: nil, response: nil)
7
10
  Viberroo.configure
@@ -13,32 +16,39 @@ module Viberroo
13
16
  @response = response
14
17
  end
15
18
 
19
+ # Used to set bot webhook.
16
20
  def set_webhook(url:, event_types: nil, send_name: nil, send_photo: nil)
17
21
  request(URL::WEBHOOK, url: url, event_types: event_types,
18
22
  send_name: send_name, send_photo: send_photo)
19
23
  end
20
24
 
25
+ # Used to remove bot webhook.
21
26
  def remove_webhook
22
27
  request(URL::WEBHOOK, url: '')
23
28
  end
24
29
 
30
+ # Used to send messages.
25
31
  def send(message:, keyboard: {})
26
32
  request(URL::MESSAGE,
27
33
  { receiver: @response&.user_id }.merge(message).merge(keyboard))
28
34
  end
29
35
 
36
+ # Used to broadcast messages.
30
37
  def broadcast(message:, to:)
31
38
  request(URL::BROADCAST_MESSAGE, message.merge(broadcast_list: to))
32
39
  end
33
40
 
41
+ # Used to retrieve account info. These settings can be set in you Viber admin panel.
34
42
  def get_account_info
35
43
  request(URL::GET_ACCOUNT_INFO)
36
44
  end
37
45
 
46
+ # Used to retrieve details of a particular user.
38
47
  def get_user_details(id:)
39
48
  request(URL::GET_USER_DETAILS, id: id)
40
49
  end
41
50
 
51
+ # Used to get online of a list of subscribed users.
42
52
  def get_online(ids:)
43
53
  request(URL::GET_ONLINE, ids: ids)
44
54
  end
@@ -1,24 +1,37 @@
1
1
  module Viberroo
2
2
  class << self
3
+ # Accessor for global configuration.
3
4
  attr_accessor :config
4
5
  end
5
6
 
7
+ # Yields the global configuration to a block. Returns existing configuration if one was defined earlier.
8
+ # @yield [Configuration] global configuration
9
+ #
10
+ # @example
11
+ # RSpec.configure do |config|
12
+ # config.auth_token = 'syEsp8e0'
13
+ # end
14
+ # @see Viberroo::Configuration
6
15
  def self.configure
7
16
  self.config ||= Configuration.new
8
17
  yield(config) if block_given?
9
18
  end
10
19
 
20
+ # Stores runtime configuration information.
11
21
  class Configuration
12
22
  attr_accessor :logger, :auth_token, :parse_response_body
13
23
 
14
24
  def initialize
25
+ # Stores Viber API authentication token. Necessary for the bot to send API requests.
15
26
  @auth_token = nil
16
27
 
28
+ # Specifies logger.
17
29
  @logger = Logger.new(STDOUT)
18
30
  @logger.formatter = proc do |severity, datetime, _, msg|
19
31
  "[#{datetime}] #{severity} Viberroo::Bot #{msg}\n"
20
32
  end
21
33
 
34
+ # Specifies whether to parse request response body.
22
35
  @parse_response_body = true
23
36
  end
24
37
  end
@@ -1,28 +1,6 @@
1
1
  require 'recursive-open-struct'
2
2
 
3
3
  module Viberroo
4
- class Response
5
- attr_reader :params
6
-
7
- def initialize(params)
8
- warn 'DEPRECATION WARNING: Callback class will be renamed to Response in next minor release.'
9
- @params = RecursiveOpenStruct.new params.to_h
10
- end
11
-
12
- def user_id
13
- case @params.event
14
- when 'conversation_started', 'subscribed'
15
- @params.user.id
16
- when 'unsubscribed', 'delivered', 'seen', 'failed'
17
- @params.user_id
18
- when 'message'
19
- @params.sender.id
20
- else
21
- @params.dig(:user, :id)
22
- end
23
- end
24
- end
25
-
26
4
  class Response
27
5
  attr_reader :params
28
6
 
@@ -1,3 +1,3 @@
1
1
  module Viberroo
2
- VERSION = '0.3.0'.freeze
2
+ VERSION = '0.3.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: viberroo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Viktor Habchak