zadarma 0.0.2 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 80afba17ce436ff3d3ec81cb4641e6f7d3470633
4
- data.tar.gz: 6dd61e01196931d811015ca3b5cec1d9ea254fed
2
+ SHA256:
3
+ metadata.gz: ccac6f457278e5150acabec5c0875de5ee20c7b7ffab9717a5ba2e6811c7890c
4
+ data.tar.gz: 65b0173713c8e3294f35b375fd55c6ec9c5a2fdc979e2d0ba877c89cb9c5db17
5
5
  SHA512:
6
- metadata.gz: b19df43c4fa72196f614ed66a0bc915ad8efebb0df2f1687a7b6013bfda5944a0ffb46ce104004bcef7590161bfc9a2b653312be1ead7a420ae1e370c163240e
7
- data.tar.gz: 4019dce3e809914d67220ede54b49c14fbdae59283698d94858d4bfce3f259f7f30f66ae4abadfcc7d5e61c91bce4c0d776cf974b84afc6ccc6688294bdc0308
6
+ metadata.gz: b15fea29704770ad426c592cae7c1ad03751fe46741ada9b9caf4588c398b22c5da929e5e479f7764b4c507a2229298aa748f38d9e69d6c6dbee326e61e56033
7
+ data.tar.gz: 7bc7b791e7e553d1f6acd6b2d556fff6b8b2fbe475511fc13d7ed88587aabd1edc2d118fb1b56f11ab760cea2f7322f5656308ade4af879312b76bcd738b8c6d
data/README.md CHANGED
@@ -21,7 +21,12 @@ Or install it yourself as:
21
21
  Zadarma.log_requests = false # default
22
22
 
23
23
  Zadarma::Client.balance
24
-
24
+ or
25
+
26
+ client = Zadarma::Client.new("YOUR_API_KEY", "YOUR_API_SECRET")
27
+ client.balance
28
+
29
+
25
30
  ## Available methods:
26
31
 
27
32
  * `balance` - user balance
@@ -36,6 +41,12 @@ Or install it yourself as:
36
41
  * `send_sms(number, message, params = {})` - send sms
37
42
  * `statistics(date_start, date_end, params = {})` - get stats
38
43
  * `pbx_statistics(date_start, date_end)` - get PBX stats
44
+ * `direct_numbers` - get direct numbers
45
+ * `documents_groups_list` - get document groups
46
+ * `direct_numbers_available(direction_id)` - get direct numbers available for purchase
47
+ * `direct_numbers_countries` - get countries where numbers are available
48
+ * `direct_numbers_country(country_code)` - get numbers within a given country
49
+ * `direct_numbers_order(number_id, period, direction_id, documents_group_id, purpose, receive_sms, user_id)` - purchase a number
39
50
 
40
51
  ## Contributing
41
52
 
@@ -5,46 +5,62 @@ require "faraday"
5
5
 
6
6
  module Zadarma
7
7
  class Client
8
- class << self
9
- include Methods
8
+ include Methods
10
9
 
11
- def request(method, path, params = {})
12
- raise "No auth data provided" unless Zadarma.api_key && Zadarma.api_secret
13
-
14
- params.merge!(format: "json")
10
+ def initialize(api_key, api_secret)
11
+ @api_key = api_key
12
+ @api_secret = api_secret
13
+ end
15
14
 
16
- response = client.send(method, "/v1" + path, params) do |request|
17
- request.headers["Accept"] = "application/json"
18
- request.headers["Authorization"] = "#{Zadarma.api_key}:#{signature("/v1" + path, params)}"
19
- end
20
-
21
- result = ActiveSupport::JSON.decode(response.body).with_indifferent_access
22
- raise Zadarma::Error.new("Error [HTTP #{response.status}]: #{result[:message]} ") unless "success" == result[:status]
15
+ def request(method, path, params = {})
16
+ raise "No auth data provided" unless @api_key && @api_secret
23
17
 
24
- result.except("status")
25
-
26
- rescue ActiveSupport::JSON.parse_error
27
- raise Zadarma::Error.new("Response is not JSON: #{response.body}")
18
+ params.merge!(format: "json")
28
19
 
20
+ response = client.send(method, "/v1" + path, params) do |request|
21
+ request.headers["Accept"] = "application/json"
22
+ request.headers["Authorization"] = "#{@api_key}:#{signature("/v1" + path, params)}"
29
23
  end
30
24
 
25
+ result = ActiveSupport::JSON.decode(response.body).with_indifferent_access
26
+ raise Zadarma::Error.new("Error [HTTP #{response.status}]: #{result[:message]} ") unless "success" == result[:status]
27
+
28
+ result.except("status")
29
+
30
+ rescue ActiveSupport::JSON.parse_error
31
+ raise Zadarma::Error.new("Response is not JSON: #{response.body}")
32
+
33
+ end
34
+
31
35
 
32
- protected
36
+ protected
33
37
 
34
- def client
35
- @client ||= ::Faraday.new(url: "https://api.zadarma.com") do |faraday|
36
- faraday.request :url_encoded
37
- faraday.response :logger if Zadarma.log_requests
38
- faraday.adapter Faraday.default_adapter
39
- end
38
+ def client
39
+ @client ||= ::Faraday.new(url: "https://api.zadarma.com") do |faraday|
40
+ faraday.request :url_encoded
41
+ faraday.response :logger if Zadarma.log_requests
42
+ faraday.adapter Faraday.default_adapter
40
43
  end
44
+ end
45
+
46
+ def signature(url, params)
47
+ query = Hash[params.sort].to_query
48
+ sign_str = url + query + Digest::MD5.hexdigest(query)
49
+ sign = Base64.encode64(OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new("sha1"), @api_secret, sign_str)).strip
50
+ sign
51
+ end
41
52
 
42
- def signature(url, params)
43
- query = Hash[params.sort].to_query
44
- sign_str = url + query + Digest::MD5.hexdigest(query)
45
- sign = Base64.encode64(OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new("sha1"), Zadarma.api_secret, sign_str)).strip
46
- sign
53
+ # Class methods
54
+ class << self
55
+ include Methods
56
+
57
+ def request(method, path, params = {})
58
+ # Make instance and execute request
59
+ obj = Zadarma::Client.new(Zadarma.api_key, Zadarma.api_secret)
60
+ obj.request(method, path, params)
47
61
  end
48
62
  end
63
+
64
+
49
65
  end
50
66
  end
@@ -56,6 +56,31 @@ module Zadarma
56
56
  request :get, "/statistics/pbx/", start: time_s(time_start), end: time_s(time_end)
57
57
  end
58
58
 
59
+ def direct_numbers
60
+ request :get, "/direct_numbers/"
61
+ end
62
+
63
+ def documents_groups_list
64
+ request :get, "/documents/groups/list/"
65
+ end
66
+
67
+ def direct_numbers_available(direction_id)
68
+ request :get, "/direct_numbers/available/#{direction_id}/"
69
+ end
70
+
71
+ def direct_numbers_countries
72
+ request :get, "/direct_numbers/countries"
73
+ end
74
+
75
+ def direct_numbers_country(country_code)
76
+ request :get, "/direct_numbers/country", country: country_code
77
+ end
78
+
79
+ def direct_numbers_order(number_id, period=nil, direction_id=nil, documents_group_id=nil, purpose=nil, receive_sms=nil, user_id=nil)
80
+ params = {number_id: number_id, period: period, direction_id: direction_id, documents_group_id: documents_group_id, purpose: purpose, receive_sms: receive_sms}
81
+ params[:user_id] = user_id if !user_id.nil?
82
+ request :post, "/direct_numbers/order", params
83
+ end
59
84
 
60
85
  protected
61
86
 
@@ -63,4 +88,4 @@ module Zadarma
63
88
  value.to_time.strftime "%Y-%m-%d %H:%M:%S" if value.present?
64
89
  end
65
90
  end
66
- end
91
+ end
data/zadarma.gemspec CHANGED
@@ -1,15 +1,15 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "zadarma"
3
- s.version = "0.0.2"
4
- s.date = "2015-10-07"
3
+ s.version = "0.0.4"
4
+ s.date = "2022-04-18"
5
5
  s.summary = "zadarma.com api ruby interface"
6
6
  s.description = ""
7
- s.authors = ["Eugeniy Belyaev"]
7
+ s.authors = ["Eugeniy Belyaev", "Devin Gaffney"]
8
8
  s.email = "eugeniy.b@gmail.com"
9
9
  s.files = `git ls-files -z`.split("\x0")
10
10
  s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
11
11
  s.require_paths = ["lib"]
12
- s.homepage = "https://github.com/zhekanax/zadarma-ruby"
12
+ s.homepage = "https://github.com/evgeniy-b/zadarma-ruby"
13
13
  s.license = "MIT"
14
14
 
15
15
  s.required_ruby_version = '>= 1.9.3'
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zadarma
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eugeniy Belyaev
8
- autorequire:
8
+ - Devin Gaffney
9
+ autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2015-10-07 00:00:00.000000000 Z
12
+ date: 2022-04-18 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: json
@@ -67,11 +68,11 @@ files:
67
68
  - lib/zadarma/error.rb
68
69
  - lib/zadarma/methods.rb
69
70
  - zadarma.gemspec
70
- homepage: https://github.com/zhekanax/zadarma-ruby
71
+ homepage: https://github.com/evgeniy-b/zadarma-ruby
71
72
  licenses:
72
73
  - MIT
73
74
  metadata: {}
74
- post_install_message:
75
+ post_install_message:
75
76
  rdoc_options: []
76
77
  require_paths:
77
78
  - lib
@@ -86,9 +87,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
86
87
  - !ruby/object:Gem::Version
87
88
  version: '0'
88
89
  requirements: []
89
- rubyforge_project:
90
- rubygems_version: 2.4.5.1
91
- signing_key:
90
+ rubygems_version: 3.1.2
91
+ signing_key:
92
92
  specification_version: 4
93
93
  summary: zadarma.com api ruby interface
94
94
  test_files: []