whatsapp 0.1.5 → 1.0.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: 458e2786e1e1e5e98deadfdf790e536be4510dd1819d95dfe0e3e50ccc9c6714
4
- data.tar.gz: 32861807fbb15d15b1ee9c88e64e8635d562542572cfb93eece0ffc6db798481
3
+ metadata.gz: 20d7b19b343c0738110ddeec50ca5ff20f686aa47241ee7504614f3a3153a193
4
+ data.tar.gz: f389727beacbbabf4c145cf59da2ab5bd1bb18245800e157e12b383bed7629ed
5
5
  SHA512:
6
- metadata.gz: c28cec96255e41a21b72837d80664feb75a60cf1dfb640bfa304d0a582d740778d9f7bba80a66eaaca6ee974c47f62366a1f61ed49360c106dfc3ab622e8a14e
7
- data.tar.gz: be9eb1faa74246b5e83fb824168d1d0a32871a527cbe76def638ee8a176ce096cd0925740d8df44497ce883c38ca00012fa641909d1d6d91e9d5e4d187bbe4fc
6
+ metadata.gz: a6f4ccb7064627069f645b0c9415cb219c56c51b38d26a4f75d4922c465931ad5b95ab8daab39b65598004d26cb1b5ae5d3f6e637396b87d0bc0f68072d57993
7
+ data.tar.gz: 6469522f916c4a95c3747d452d4993018681392a6a3aaa6ee0adbaa22d759f42ae870a011775a7d20d02a84330ae425dbc175bb1f7a411496d66fe06f53c3285
@@ -10,32 +10,26 @@ module Whats
10
10
  def initialize
11
11
  @user = Whats.configuration.user
12
12
  @password = Whats.configuration.password
13
+ @client = Whats::Client.new(encoded_auth, :basic)
14
+ end
15
+
16
+ def call
17
+ client.request(PATH)
13
18
  end
14
19
 
15
20
  def token
16
21
  return @token if valid?
17
22
 
18
- full_path = "#{Whats.configuration.base_path}#{PATH}"
19
-
20
- response = Typhoeus.post(
21
- full_path,
22
- headers: { "Authorization" => "Basic #{encoded_auth}" },
23
- body: {}
24
- )
25
- update_atributes response
23
+ extract_atributes call
26
24
 
27
25
  @token
28
26
  end
29
27
 
30
28
  private
31
29
 
32
- def update_atributes(response)
33
- if response.failure?
34
- raise Whats::Errors::RequestError.new("API request error.", response)
35
- end
36
-
37
- response = JSON.parse response.body
30
+ attr_reader :client
38
31
 
32
+ def extract_atributes(response)
39
33
  @token = response["users"].first["token"]
40
34
  @expires_after = response["users"].first["expires_after"]
41
35
  end
@@ -5,11 +5,12 @@ module Whats
5
5
  class SendHsmMessage
6
6
  PATH = "/v1/messages"
7
7
 
8
- def initialize(client, wa_id, namespace, element_name, params)
8
+ def initialize(client, wa_id, namespace, element_name, language, params)
9
9
  @client = client
10
10
  @wa_id = wa_id
11
11
  @namespace = namespace
12
12
  @element_name = element_name
13
+ @language = language
13
14
  @params = params
14
15
  end
15
16
 
@@ -19,16 +20,13 @@ module Whats
19
20
 
20
21
  private
21
22
 
22
- attr_reader :client, :wa_id, :namespace, :element_name, :params
23
+ attr_reader :client, :wa_id, :namespace, :element_name, :language, :params
23
24
 
24
25
  def payload
25
26
  {
26
27
  hsm: {
27
28
  element_name: element_name,
28
- language: {
29
- code: :pt_BR,
30
- policy: :deterministic
31
- },
29
+ language: language.is_a?(Hash) ? language : language_options(language),
32
30
  localizable_params: params,
33
31
  namespace: namespace
34
32
  },
@@ -37,6 +35,13 @@ module Whats
37
35
  type: :hsm
38
36
  }
39
37
  end
38
+
39
+ def language_options(language)
40
+ {
41
+ code: language,
42
+ policy: :deterministic
43
+ }
44
+ end
40
45
  end
41
46
  end
42
47
  end
@@ -33,12 +33,13 @@ module Whats
33
33
  Actions::SendMessage.new(client, username, body).call
34
34
  end
35
35
 
36
- def send_hsm_message(username, namespace, element_name, params)
36
+ def send_hsm_message(username, namespace, element_name, language, params)
37
37
  Actions::SendHsmMessage.new(
38
38
  client,
39
39
  username,
40
40
  namespace,
41
41
  element_name,
42
+ language,
42
43
  params
43
44
  ).call
44
45
  end
@@ -4,21 +4,22 @@ require "whats/actions/login"
4
4
 
5
5
  module Whats
6
6
  class Client
7
- def initialize(login = Whats::Actions::Login.new)
7
+ def initialize(token = nil, token_type = :bearer)
8
8
  @base_path = Whats.configuration.base_path
9
- @login = login
9
+ @token = token || login.token
10
+ @token_type = token_type
10
11
  end
11
12
 
12
- def request(path, payload)
13
+ def request(path, payload = nil)
13
14
  full_path = "#{base_path}#{path}"
14
15
 
15
16
  response = Typhoeus.post(
16
17
  full_path,
17
18
  headers: {
18
- "Authorization" => "Bearer #{login.token}",
19
+ "Authorization" => "#{token_name} #{token}",
19
20
  "Content-Type" => "application/json"
20
21
  },
21
- body: payload.to_json
22
+ body: payload && payload.to_json
22
23
  )
23
24
 
24
25
  raise Whats::Errors::RequestError.new("API request error.", response) if response.failure?
@@ -28,6 +29,19 @@ module Whats
28
29
 
29
30
  private
30
31
 
31
- attr_reader :base_path, :login
32
+ attr_reader :base_path, :token, :token_type
33
+
34
+ def token_name
35
+ case token_type
36
+ when :basic
37
+ "Basic"
38
+ when :bearer
39
+ "Bearer"
40
+ end
41
+ end
42
+
43
+ def login
44
+ Whats::Actions::Login.new
45
+ end
32
46
  end
33
47
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Whats
4
- VERSION = "0.1.5"
4
+ VERSION = "1.0.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: whatsapp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bruno Soares
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-10-19 00:00:00.000000000 Z
12
+ date: 2020-03-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: typhoeus
@@ -216,8 +216,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
216
216
  - !ruby/object:Gem::Version
217
217
  version: '0'
218
218
  requirements: []
219
- rubyforge_project:
220
- rubygems_version: 2.7.7
219
+ rubygems_version: 3.0.4
221
220
  signing_key:
222
221
  specification_version: 4
223
222
  summary: WhatsApp Enterprise API interface.