yandex-delivery-api 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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