yandex-delivery-api 0.0.4 → 0.0.5

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/lib/yandex_delivery.rb +30 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 41af9553036b25eb8d2592b1c2ea6f403449b9d51974f12d0c270beac6e4352b
4
- data.tar.gz: 007f4c13999d5657b087897b24824388c980afd6b7ffc79d647fc333fd81e569
3
+ metadata.gz: 5bd81352bdf21d93b5b70f68f016bf931584bdc94cd695b19fb405525b16e974
4
+ data.tar.gz: 347ba1fc88d9e8740dc7e2feff8e172ccd509c30e21dae85b79d02a87bc2f51e
5
5
  SHA512:
6
- metadata.gz: a7266d553d63923d92e1de53b31bea3461ce9fd77d122b27d14f99e3923e0f5c4d6a3f015cc5d3a0f5ad2ab060c6cda8f836d699ebcfa50f559b92e8a726f85a
7
- data.tar.gz: 6cfb04338b65afbf987b5e342eb6daafd09c1cd76d635e99a8b80c0f059d3be20e03c87e55f31810adc06f712fdf7926994aa7b619d560b7414ee4f16a8703a7
6
+ metadata.gz: b28481848de4c630fbe38f012093dfa913899eb7f035a32cd7f753489f55e88be24071af5095be3a487c67ae3db69919803d3afbb00ff6ed9ec92eefb0afc89d
7
+ data.tar.gz: 9ce904bf889bdc4e0cefa3daecaf3a1e5c6ea04bf84ec1697044fae656b1c682c82b652416f3aac072e689651b1d7df7cfce89712bd65c1051e1f309b12a6962
data/README.md CHANGED
@@ -30,7 +30,7 @@ params = {
30
30
  :order_cost => 1000
31
31
  }
32
32
 
33
- YandexDelivery::get_deliveries params
33
+ YandexDelivery::search_delivery_list params
34
34
  ```
35
35
 
36
- secret_key, client_id, sender_id указывать в параметрах не обязательно.
36
+ secret_key, client_id, sender_id указывать в параметрах не обязательно.
@@ -1,5 +1,18 @@
1
1
  module YandexDelivery
2
2
 
3
+ def request method_name, params={}
4
+ params = build_params method_name, params
5
+ result = RestClient.post "https://delivery.yandex.ru/api/last/#{method_name.to_s.camelize(:lower)}", params
6
+ JSON.parse(result)
7
+ end
8
+
9
+ def build_params method_name, params={}
10
+ params[:client_id] = YandexDelivery.client["id"]
11
+ params[:sender_id] = params[:sender_id] || YandexDelivery.senders.first["id"]
12
+ params[:secret_key] = Digest::MD5.hexdigest("#{post_values(params)}#{YandexDelivery.send("#{method_name}_key")}")
13
+ params
14
+ end
15
+
3
16
  class << self
4
17
 
5
18
  def setup
@@ -15,14 +28,30 @@ module YandexDelivery
15
28
  def build_params method_name, params={}
16
29
  params[:client_id] = YandexDelivery.client["id"]
17
30
  params[:sender_id] = params[:sender_id] || YandexDelivery.senders.first["id"]
18
- params[:secret_key] = Digest::MD5.hexdigest("#{params.sort.map{|k,v| v}.join('')}#{YandexDelivery.send("#{method_name}_key")}")
31
+ params[:secret_key] = Digest::MD5.hexdigest("#{post_values(params)}#{YandexDelivery.send("#{method_name}_key")}")
19
32
  params
20
33
  end
21
34
 
35
+ def post_values params
36
+ return params unless params.kind_of?(Array) || params.kind_of?(Hash)
37
+ if params.kind_of?(Array)
38
+ params.map{|k,v|
39
+ post_values(k)
40
+ }.join('')
41
+ else
42
+ params.sort.map{|k,v|
43
+ post_values(v)
44
+ }.join('')
45
+ end
46
+ end
47
+
22
48
  def create_method name
23
49
  define_singleton_method(name) do |params = {}|
24
50
  request name, params
25
51
  end
52
+ define_method(name) do |params = {}|
53
+ request name, params
54
+ end
26
55
  end
27
56
 
28
57
  def register(name, value, type = nil)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yandex-delivery-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Osetrov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-31 00:00:00.000000000 Z
11
+ date: 2020-07-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client