wassenger_client 0.1.1 → 0.2.0

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: bdcdfee1a8472722bd7f6146b68c5d0c60a0d50abb279f8f89796721fa919e69
4
- data.tar.gz: 4e8e38f8fac74d8a892d977084b619fd0b268eeb4dfec77d0acd14b16cbe5356
3
+ metadata.gz: aa00bbb2916a7e9273fc3c12b3bef10aff158620c4f064757ce3c745455723a1
4
+ data.tar.gz: 1854452b03bd1c570c4f7d9c8ae3044acc162602681877ca5ce3737726a4d979
5
5
  SHA512:
6
- metadata.gz: bbc29ebec8dd101a9617afd7af9ae59141b2c5596237cbcc6336c9fe889cfcc4682d2028b28c212a71f87375f134e2d1069223462aa69bf7af803a3fa61ceb8d
7
- data.tar.gz: 0bde627b25a444fe9d668980aa24a7ad43e616746d943ab60ce4dd55d0b6c24ab6caa94166892f077126d8d79820292ac3f85724f219c4bd13c16653590c9528
6
+ metadata.gz: ee232df6fff80d6f8a20861ddebb01bc5c0d392a06c27b4913688e309a9b67e4269ae9a5febc05e60d49e89969b08d7866ac7175b831c6652bf624259d6178df
7
+ data.tar.gz: af09107b6d1ddfec45eb71d9bf6232f8fb035fe2f1ec197cb719e748f36851855916ef378953608e7a5c51e53a1d237f517475136792a6f8aa5f86a07c900104
@@ -8,45 +8,51 @@ module WassengerClient
8
8
  class Client < OpenStruct
9
9
  class << self
10
10
  def client
11
- http = Net::HTTP.new(url.host, url.port)
11
+ http = Net::HTTP.new(url_endpoint.host, url_endpoint.port)
12
12
  http.use_ssl = true
13
13
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
14
14
  http
15
15
  end
16
16
 
17
- def url
18
- URI(base_url)
17
+ def url_endpoint(url = base_url, id = '', endpoint = '')
18
+ id.blank? ? URI(url+endpoint) : URI(url+"/"+id+endpoint)
19
19
  end
20
20
 
21
- def request(type = :get, params = {}, id = '0')
22
- request = Net::HTTP::Get.new(url) if type == :get
23
- request = Net::HTTP::Post.new(url) if type == :post
24
- request = Net::HTTP::Delete.new(URI(base_url.concat("/#{id}"))) if type == :delete
25
- request = Net::HTTP::Get.new(URI(base_url.concat("/#{id}"))) if type == :get_details
21
+ def request(url = base_url, type = :get, id = '', params = {}, endpoint = '', query = {})
22
+ uri = url_endpoint(url, id, endpoint)
23
+ uri.query = URI.encode_www_form(query)
24
+ request = Net::HTTP::Get.new(uri) if type == :get
25
+ request = Net::HTTP::Post.new(uri) if type == :post
26
+ request = Net::HTTP::Patch.new(uri) if type == :patch
27
+ request = Net::HTTP::Delete.new(uri) if type == :delete
26
28
  request['content-type'] = 'application/json'
27
29
  request['token'] = ENV['WASSENGER_TOKEN']
28
30
  request.body = "#{params.to_json}" if !params.blank?
29
31
  request
30
32
  end
31
33
 
32
- def post(params = {})
33
- request = request(:post, params)
34
- client.request(request).read_body
34
+ def post(url = base_url, id = '', params = {}, endpoint = '', query = {})
35
+ request = request(url, :post, id, params, endpoint, query)
36
+ response = client.request(request).read_body
37
+ JSON.parse(response) if !response.nil?
35
38
  end
36
39
 
37
- def get(params = {})
38
- request = request(:get, params)
39
- client.request(request).read_body
40
+ def get(url = base_url, id = '', params = {}, endpoint = '', query = {})
41
+ request = request(url, :get, id, params, endpoint, query)
42
+ response = client.request(request).read_body
43
+ JSON.parse(response) if !response.nil?
40
44
  end
41
45
 
42
- def delete(id)
43
- request = request(:delete, {}, id)
44
- client.request(request).read_body
46
+ def update(url = base_url, id = '', params = {}, endpoint = '', query = {})
47
+ request = request(url, :patch, id, params, endpoint, query)
48
+ response = client.request(request).read_body
49
+ JSON.parse(response) if !response.nil?
45
50
  end
46
51
 
47
- def get_details(id)
48
- request = request(:get_details, {}, id)
49
- client.request(request).read_body
52
+ def delete(url = base_url, id = '', params = {}, endpoint = '', query = {})
53
+ request = request(url, :delete, id, params, endpoint, query)
54
+ response = client.request(request).read_body
55
+ JSON.parse(response) if !response.nil?
50
56
  end
51
57
 
52
58
  def base_url
@@ -1,11 +1,95 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WassengerClient
4
- class Device < WassengerClient::Client
4
+ class Device < OpenStruct
5
5
  class << self
6
6
  def base_url
7
7
  WassengerClient::Client.base_url + 'devices'
8
8
  end
9
+
10
+ def get(query = {})
11
+ WassengerClient::Client.get(base_url, '', {}, '', query)
12
+ end
13
+
14
+ def create(params = {})
15
+ WassengerClient::Client.post(base_url, '', params)
16
+ end
17
+
18
+ def sync(id = '0')
19
+ WassengerClient::Client.get(base_url, id, {}, '/sync')
20
+ end
21
+
22
+ def scan(id = '0', query = {})
23
+ WassengerClient::Client.get(base_url, id, {}, '/scan', query)
24
+ end
25
+
26
+ def reset(id = '0', query = {})
27
+ WassengerClient::Client.post(base_url, id, {}, '/reset', query)
28
+ end
29
+
30
+ def remove_chats(id = '0', params = {})
31
+ WassengerClient::Client.post(base_url, id, params, '/removechats')
32
+ end
33
+
34
+ def reboot(id = '0', query = {})
35
+ WassengerClient::Client.post(base_url, id, {}, '/reboot', query)
36
+ end
37
+
38
+ def queue(id = '0')
39
+ WassengerClient::Client.get(base_url, id, {}, '/queue')
40
+ end
41
+
42
+ def route_messages(id = '0', params = {})
43
+ WassengerClient::Client.patch(base_url, id, params, '/queue')
44
+ end
45
+
46
+ def empty_queue(id = '0', query = {})
47
+ WassengerClient::Client.delete(base_url, id, {}, '/queue', query)
48
+ end
49
+
50
+ def get_profile_image(id = '0')
51
+ WassengerClient::Client.get(base_url, id, {}, '/profile/image')
52
+ end
53
+
54
+ def get_profiles(id = '0', query = {})
55
+ WassengerClient::Client.get(base_url, id, {}, '/profile', query)
56
+ end
57
+
58
+ def update_profile(id = '0', params = {})
59
+ WassengerClient::Client.patch(base_url, id, params, '/profile')
60
+ end
61
+
62
+ def download_invoice(id = '0', invoice_id = '0')
63
+ WassengerClient::Client.get(base_url, id, {}, "/invoices/#{invoice_id}/pdf")
64
+ end
65
+
66
+ def invoices(id = '0', query = {})
67
+ WassengerClient::Client.get(base_url, id, {}, '/invoices', query)
68
+ end
69
+
70
+ def health(id = '0')
71
+ WassengerClient::Client.get(base_url, id, {}, '/health')
72
+ end
73
+
74
+ def groups(id = '0')
75
+ WassengerClient::Client.get(base_url, id, {}, '/groups')
76
+ end
77
+
78
+ def auto_reply(id = '0', params = {})
79
+ WassengerClient::Client.post(base_url, id, params, '/autoreply')
80
+ end
81
+
82
+ def get_details(id = '0')
83
+ WassengerClient::Client.get(base_url, id)
84
+ end
85
+
86
+ def update(id = '0', params = {})
87
+ WassengerClient::Client.patch(base_url, id, params)
88
+ end
89
+
90
+ def delete(id = '0')
91
+ WassengerClient::Client.delete(base_url, id)
92
+ end
9
93
  end
10
94
  end
11
95
  end
@@ -1,11 +1,39 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WassengerClient
4
- class File < WassengerClient::Client
4
+ class File < OpenStruct
5
5
  class << self
6
6
  def base_url
7
7
  WassengerClient::Client.base_url + 'files'
8
8
  end
9
+
10
+ def get(query = {})
11
+ WassengerClient::Client.get(base_url, '', {}, '', query)
12
+ end
13
+
14
+ def upload(params = {}, query = {})
15
+ WassengerClient::Client.post(base_url, '', params, '', query)
16
+ end
17
+
18
+ def preview_image(id = '0')
19
+ WassengerClient::Client.get(base_url, id, {}, '/preview')
20
+ end
21
+
22
+ def download(id = '0')
23
+ WassengerClient::Client.get(base_url, id, {}, '/download')
24
+ end
25
+
26
+ def get_details(id = '0')
27
+ WassengerClient::Client.get(base_url, id)
28
+ end
29
+
30
+ def update(id = '0', params = {})
31
+ WassengerClient::Client.patch(base_url, id, params)
32
+ end
33
+
34
+ def delete(id = '0')
35
+ WassengerClient::Client.delete(base_url, id)
36
+ end
9
37
  end
10
38
  end
11
39
  end
@@ -1,11 +1,31 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WassengerClient
4
- class Message < WassengerClient::Client
4
+ class Message < OpenStruct
5
5
  class << self
6
6
  def base_url
7
7
  WassengerClient::Client.base_url + 'messages'
8
8
  end
9
+
10
+ def get(query = {})
11
+ WassengerClient::Client.get(base_url, '', {}, '', query)
12
+ end
13
+
14
+ def send(params = {})
15
+ WassengerClient::Client.post(base_url, '', params)
16
+ end
17
+
18
+ def get_details(id = '0', query = {})
19
+ WassengerClient::Client.get(base_url, id, {}, '', query)
20
+ end
21
+
22
+ def update(id = '0', params = {})
23
+ WassengerClient::Client.patch(base_url, id, params)
24
+ end
25
+
26
+ def delete(id = '0')
27
+ WassengerClient::Client.delete(base_url, id)
28
+ end
9
29
  end
10
30
  end
11
31
  end
@@ -1,11 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WassengerClient
4
- class Pricing < WassengerClient::Client
4
+ class Pricing < OpenStruct
5
5
  class << self
6
6
  def base_url
7
7
  WassengerClient::Client.base_url + 'pricing'
8
8
  end
9
+
10
+ def get
11
+ WassengerClient::Client.get(base_url)
12
+ end
9
13
  end
10
14
  end
11
15
  end
@@ -1,11 +1,35 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WassengerClient
4
- class Webhook < WassengerClient::Client
4
+ class Webhook < OpenStruct
5
5
  class << self
6
6
  def base_url
7
7
  WassengerClient::Client.base_url + 'webhooks'
8
8
  end
9
+
10
+ def get(query = {})
11
+ WassengerClient::Client.get(base_url, '', {}, '', query)
12
+ end
13
+
14
+ def register(params = {})
15
+ WassengerClient::Client.post(base_url, '', params)
16
+ end
17
+
18
+ def enable(id = '0')
19
+ WassengerClient::Client.post(base_url, id, {}, '/enable')
20
+ end
21
+
22
+ def get_details(id = '0')
23
+ WassengerClient::Client.get(base_url, id)
24
+ end
25
+
26
+ def update(id = '0', params = {})
27
+ WassengerClient::Client.patch(base_url, id, params)
28
+ end
29
+
30
+ def delete(id = '0')
31
+ WassengerClient::Client.delete(base_url, id)
32
+ end
9
33
  end
10
34
  end
11
35
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'net/http'
4
+ require 'json'
5
+
6
+ RSpec.describe WassengerClient::Device, type: :model do
7
+ it 'it should connect with the api endpoint' do
8
+ response = Net::HTTP.get(URI.parse(WassengerClient::Device.base_url))
9
+ expect(JSON.parse(response)['status']).to be_in([200, 403])
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'net/http'
4
+ require 'json'
5
+
6
+ RSpec.describe WassengerClient::File, type: :model do
7
+ it 'it should connect with the api endpoint' do
8
+ response = Net::HTTP.get(URI.parse(WassengerClient::File.base_url))
9
+ expect(JSON.parse(response)['status']).to be_in([200, 403])
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'net/http'
4
+ require 'json'
5
+
6
+ RSpec.describe WassengerClient::Pricing, type: :model do
7
+ it 'it should connect with the api endpoint' do
8
+ response = Net::HTTP.get(URI.parse(WassengerClient::Pricing.base_url))
9
+ expect(JSON.parse(response)['status']).to be_in([200, 403])
10
+ end
11
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wassenger_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Raí Gondim
@@ -94,7 +94,10 @@ files:
94
94
  - spec/dummy/public/422.html
95
95
  - spec/dummy/public/500.html
96
96
  - spec/dummy/public/favicon.ico
97
+ - spec/models/wassenger_client/device_spec.rb
98
+ - spec/models/wassenger_client/file_spec.rb
97
99
  - spec/models/wassenger_client/message_spec.rb
100
+ - spec/models/wassenger_client/pricing_spec.rb
98
101
  - spec/models/wassenger_client/webhook_spec.rb
99
102
  - spec/rails_helper.rb
100
103
  - spec/spec_helper.rb
@@ -162,3 +165,6 @@ test_files:
162
165
  - spec/spec_helper.rb
163
166
  - spec/models/wassenger_client/message_spec.rb
164
167
  - spec/models/wassenger_client/webhook_spec.rb
168
+ - spec/models/wassenger_client/pricing_spec.rb
169
+ - spec/models/wassenger_client/file_spec.rb
170
+ - spec/models/wassenger_client/device_spec.rb