viberroo 0.0.2

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 2409b9e53d6abf7e9b7c8e8278c2612748b509d0dfc87835bd975d7c8d6cc45e
4
+ data.tar.gz: 6864f673f4663907e2ee0bd63060290f6dc3ee8e84e1afceec6048543108dde0
5
+ SHA512:
6
+ metadata.gz: b061bfa854f9d63368dba3f3446927542c568ec24d241cde30b70d27873358d86bb381608d7b2ee1933d86599338852cea2bb72f826414e94ed5357f927f1e7c
7
+ data.tar.gz: 45dd3f7274232324d2834a669265c68d46e812f1a7e919603e7db320f1284d3189ab35ee281c7f9548516b2f4412aed23d66d6f26fa42469e38465532ac8f77b
data/lib/bot.rb ADDED
@@ -0,0 +1,16 @@
1
+ module Viberroo
2
+ class Bot
3
+ include Message
4
+
5
+ def initialize(token:, user: {})
6
+ @webhook_url = "#{API_URL}/set_webhook"
7
+ @message_url = "#{API_URL}/send_message"
8
+ @header = { 'X-Viber-Auth-Token': token }
9
+ @user = user
10
+ end
11
+
12
+ def set_webhook(params)
13
+ Faraday.post(@webhook_url, params.to_json, @header)
14
+ end
15
+ end
16
+ end
data/lib/input.rb ADDED
@@ -0,0 +1,27 @@
1
+ module Viberroo
2
+ module Input
3
+ class Button
4
+ def self.reply(params = {})
5
+ { ActionType: 'reply' }.merge(params)
6
+ end
7
+
8
+ def self.url(params = {})
9
+ { ActionType: 'open-url' }.merge(params)
10
+ end
11
+
12
+ def self.location_picker(params = {})
13
+ { ActionType: 'location-picker',
14
+ min_api_version: 3
15
+ }.merge(params)
16
+ end
17
+
18
+ def self.none(params = {})
19
+ { ActionType: 'none' }.merge(params)
20
+ end
21
+ end
22
+
23
+ def keyboard(params = {})
24
+ { Type: 'keyboard' }.merge(params)
25
+ end
26
+ end
27
+ end
data/lib/message.rb ADDED
@@ -0,0 +1,37 @@
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/user.rb ADDED
@@ -0,0 +1,9 @@
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
data/lib/viberroo.rb ADDED
@@ -0,0 +1,12 @@
1
+ require 'json'
2
+ require 'faraday'
3
+ require 'message'
4
+ require 'bot'
5
+ require 'input'
6
+ require 'user'
7
+ require 'bot'
8
+
9
+ module Viberroo
10
+ API_URL = 'https://chatapi.viber.com/pa'
11
+ VERSION = '0.0.2'
12
+ end
metadata ADDED
@@ -0,0 +1,75 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: viberroo
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Viktor Habchak
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-03-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faraday
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 1.0.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 1.0.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: recursive-open-struct
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 1.1.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 1.1.1
41
+ description:
42
+ email: vikdotdev@gmail.com
43
+ executables: []
44
+ extensions: []
45
+ extra_rdoc_files: []
46
+ files:
47
+ - lib/bot.rb
48
+ - lib/input.rb
49
+ - lib/message.rb
50
+ - lib/user.rb
51
+ - lib/viberroo.rb
52
+ homepage: https://github.com/vikdotdev/viberroo
53
+ licenses:
54
+ - MIT
55
+ metadata: {}
56
+ post_install_message:
57
+ rdoc_options: []
58
+ require_paths:
59
+ - lib
60
+ required_ruby_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ required_rubygems_version: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ requirements: []
71
+ rubygems_version: 3.1.2
72
+ signing_key:
73
+ specification_version: 4
74
+ summary: Thin Viber REST API wrapper for ruby.
75
+ test_files: []