viberroo 0.0.3 → 0.0.8

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: 2d5408acb5953b34e97f256cc3a6305c27971e87c1393655fd7ec69b2bc7998f
4
- data.tar.gz: 25989bf9536a6a459cc8da43de29aa72e6a4fcb2b178fa59c888d327d379b6a8
3
+ metadata.gz: 78bcb0e32349405f96129347dc9cbca08f1af7b3fc15b0bdc93aef2199c76e1e
4
+ data.tar.gz: 98d3a81828703929aead8b437bfd3aab024c43491d2d6bf1c087f8fc9f6ff1c1
5
5
  SHA512:
6
- metadata.gz: d151c2a351080fb502b0a3b837a11f52852a1d49cabeb41ffa10561c6ba7096b1129d486c100c19340cfca529055ecf90782ae759b20a2b6918de2f08931f89e
7
- data.tar.gz: 71ddd5c041d3913c048ea24286ab02209ea3ee31f6f2f20c536fca6e34048ec0e9e35fd83d82f1718689799a0251a6e36bcd6996c65b8946850e96f9aad6d86b
6
+ metadata.gz: d4e6e9eba4b27eb6442800440f8849ec957528753fbcee168dbd1c8e0cb0ad62d4ed51173ad5b5be0aeb567dbab9cd4d4e504ebb38a1bfcbeb55d9267b152228
7
+ data.tar.gz: 07d4b7a5b117c958fc6af4eef204283b7af93c62fb14de25cc5f76019b9f59a8f5280bd3ec581c3dbed84ca224a4c7f81a63ee60735bdc9ee9784eae1bed3bed
data/lib/viberroo.rb CHANGED
@@ -1,12 +1,11 @@
1
1
  require 'json'
2
2
  require 'faraday'
3
- require 'message'
4
- require 'bot'
5
- require 'input'
6
- require 'response'
7
- require 'bot'
3
+ require 'viberroo/message'
4
+ require 'viberroo/bot'
5
+ require 'viberroo/input'
6
+ require 'viberroo/response'
7
+ require 'viberroo/bot'
8
8
 
9
9
  module Viberroo
10
- API_URL = 'https://chatapi.viber.com/pa'
11
- VERSION = '0.0.3'
10
+ API_URL = 'https://chatapi.viber.com/pa'.freeze
12
11
  end
@@ -5,12 +5,16 @@ module Viberroo
5
5
  def initialize(token:, response: {})
6
6
  @webhook_url = "#{API_URL}/set_webhook"
7
7
  @message_url = "#{API_URL}/send_message"
8
- @header = { 'X-Viber-Auth-Token': token }
8
+ @headers = { 'X-Viber-Auth-Token': token, 'Content-Type': 'application/json' }
9
9
  @response = response
10
10
  end
11
11
 
12
12
  def set_webhook(params)
13
- Faraday.post(@webhook_url, params.to_json, @header)
13
+ Faraday.post(@webhook_url, params.to_json, @headers)
14
+ end
15
+
16
+ def remove_webhook
17
+ Faraday.post(@webhook_url, { url: '' }.to_json, @headers)
14
18
  end
15
19
  end
16
20
  end
@@ -15,6 +15,12 @@ module Viberroo
15
15
  }.merge(params)
16
16
  end
17
17
 
18
+ def self.share_phone(params = {})
19
+ { ActionType: 'share-phone',
20
+ min_api_version: 3
21
+ }.merge(params)
22
+ end
23
+
18
24
  def self.none(params = {})
19
25
  { ActionType: 'none' }.merge(params)
20
26
  end
@@ -0,0 +1,57 @@
1
+ module Viberroo
2
+ module Message
3
+ # TODO: add list of params that is mandatory for particular message type,
4
+ # throw exceptions and log errors if not found
5
+
6
+ def send_message(params = {})
7
+ dispatch({ type: :text }.merge(params))
8
+ end
9
+
10
+ def send_rich_media(params = {})
11
+ dispatch({ type: :rich_media, min_api_version: 2 }.merge(params))
12
+ end
13
+
14
+ def send_location(params = {})
15
+ dispatch({ type: :location, min_api_version: 3 }.merge(params))
16
+ end
17
+
18
+ def send_picture(params = {})
19
+ dispatch({ type: :picture }.merge(params))
20
+ end
21
+
22
+ def send_video(params = {})
23
+ dispatch({ type: :video }.merge(params))
24
+ end
25
+
26
+ def send_file(params = {})
27
+ dispatch({ type: :file }.merge(params))
28
+ end
29
+
30
+ def send_contact(params = {})
31
+ dispatch({ type: :contact }.merge(params))
32
+ end
33
+
34
+ def send_url(params = {})
35
+ dispatch({ type: :url }.merge(params))
36
+ end
37
+
38
+ # https://viber.github.io/docs/tools/sticker-ids/
39
+ def send_sticker(params = {})
40
+ dispatch({ type: :sticker }.merge(params))
41
+ end
42
+
43
+ private
44
+
45
+ def dispatch(params)
46
+ Faraday.post(
47
+ @message_url,
48
+ normalize({ receiver: @response.user_id }.merge(params)),
49
+ @headers
50
+ )
51
+ end
52
+
53
+ def normalize(params)
54
+ params.delete_if { |_, v| v.nil? }.to_json
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,26 @@
1
+ require 'recursive-open-struct'
2
+
3
+ module Viberroo
4
+ class Response
5
+ class << self
6
+ def init(params)
7
+ @@os = RecursiveOpenStruct.new params.to_h
8
+ @@os.user_id = user_id
9
+ @@os
10
+ end
11
+
12
+ private
13
+
14
+ def user_id
15
+ case @@os.event
16
+ when 'conversation_started', 'subscribed'
17
+ @@os.user.id
18
+ when 'unsubscribed', 'delivered', 'seen', 'failed'
19
+ @@os.user_id
20
+ when 'message'
21
+ @@os.sender.id
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,3 @@
1
+ module Viberroo
2
+ VERSION = '0.0.8'.freeze
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.0.3
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Viktor Habchak
@@ -44,11 +44,12 @@ executables: []
44
44
  extensions: []
45
45
  extra_rdoc_files: []
46
46
  files:
47
- - lib/bot.rb
48
- - lib/input.rb
49
- - lib/message.rb
50
- - lib/response.rb
51
47
  - lib/viberroo.rb
48
+ - lib/viberroo/bot.rb
49
+ - lib/viberroo/input.rb
50
+ - lib/viberroo/message.rb
51
+ - lib/viberroo/response.rb
52
+ - lib/viberroo/version.rb
52
53
  homepage: https://github.com/vikdotdev/viberroo
53
54
  licenses:
54
55
  - MIT
@@ -71,5 +72,5 @@ requirements: []
71
72
  rubygems_version: 3.1.2
72
73
  signing_key:
73
74
  specification_version: 4
74
- summary: Thin Viber REST API wrapper for ruby.
75
+ summary: Thin Viber REST API wrapper for Ruby.
75
76
  test_files: []
data/lib/message.rb DELETED
@@ -1,37 +0,0 @@
1
- module Viberroo
2
- module Message
3
- def send_message(params = {})
4
- dispatch({
5
- type: :text
6
- }.merge(params))
7
- end
8
-
9
- def send_rich_media(params = {})
10
- dispatch({
11
- type: :rich_media,
12
- min_api_version: 2
13
- }.merge(params))
14
- end
15
-
16
- def send_location(params = {})
17
- dispatch({
18
- type: :location,
19
- min_api_version: 3
20
- }.merge(params))
21
- end
22
-
23
- private
24
-
25
- def dispatch(params)
26
- Faraday.post(
27
- @message_url,
28
- normalize({ receiver: @user.id }.merge(params)),
29
- @header
30
- )
31
- end
32
-
33
- def normalize(params)
34
- params.delete_if { |_, v| v.nil? }.to_json
35
- end
36
- end
37
- end
data/lib/response.rb DELETED
@@ -1,9 +0,0 @@
1
- require 'recursive-open-struct'
2
-
3
- module Viberroo
4
- class Response
5
- def self.init(params)
6
- RecursiveOpenStruct.new params
7
- end
8
- end
9
- end