travelpayouts_api 0.0.2 → 0.0.3
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 +4 -4
- data/README.md +1 -1
- data/lib/travelpayouts_api/request.rb +36 -47
- data/lib/travelpayouts_api/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f09a3ce20567df7a4ae3136976d58d3918e729d6
|
|
4
|
+
data.tar.gz: 8aa825e9e69e1fc917c4a6a478f7da65aebe72f8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 146e837156f4150b0e7247ad99e757692576610d11c1c72162ea5fcc110db79ebccdc7c00b266e1b1f0cdb0857a861d8549705fa0e43259b6c9041e988d9cb1f
|
|
7
|
+
data.tar.gz: 78ebd65113e8528d9dc0ad39d7bf106e8ba9e77fbfcb09ac9a167555564feeb8215e168d67b39605826f7392a7dd2dca9ad26878a5851e86b8350847aa0d75c1
|
data/README.md
CHANGED
|
@@ -5,18 +5,12 @@ module TravelPayouts
|
|
|
5
5
|
require 'hashie/mash'
|
|
6
6
|
|
|
7
7
|
def request(url, params, skip_parse: false)
|
|
8
|
-
token = config.token
|
|
9
8
|
params[:currency] ||= config.currency
|
|
10
|
-
params[:locale]
|
|
9
|
+
params[:locale] ||= config.locale
|
|
11
10
|
|
|
12
11
|
params.delete_if{ |_, v| v == nil }
|
|
13
12
|
|
|
14
|
-
|
|
15
|
-
x_access_token: token,
|
|
16
|
-
accept_encoding: 'gzip, deflate',
|
|
17
|
-
accept: :json
|
|
18
|
-
}
|
|
19
|
-
data = RestClient.get url, headers.merge(params: params)
|
|
13
|
+
data = RestClient.get url, request_headers.merge(params: params)
|
|
20
14
|
skip_parse ? data : respond(data)
|
|
21
15
|
rescue RestClient::Exception => e
|
|
22
16
|
err = Error.new(e.response, e.http_code)
|
|
@@ -25,58 +19,28 @@ module TravelPayouts
|
|
|
25
19
|
end
|
|
26
20
|
|
|
27
21
|
def signed_flight_request(method, url, params)
|
|
28
|
-
|
|
29
|
-
params[:
|
|
30
|
-
params[:host] = config.host
|
|
22
|
+
params[:marker] = config.marker.to_s
|
|
23
|
+
params[:host] = config.host
|
|
31
24
|
params[:currency] ||= config.currency
|
|
32
|
-
params[:locale]
|
|
25
|
+
params[:locale] ||= config.locale if params.has_key?(:locale)
|
|
33
26
|
|
|
34
27
|
params.delete_if{ |_, v| v == nil }
|
|
35
28
|
|
|
36
|
-
|
|
37
|
-
signature = Digest::MD5.hexdigest values.join(':')
|
|
38
|
-
params[:signature] = signature
|
|
29
|
+
params[:signature] = signature(params)
|
|
39
30
|
|
|
40
|
-
|
|
41
|
-
x_access_token: token,
|
|
42
|
-
accept_encoding: 'gzip, deflate',
|
|
43
|
-
accept: :json,
|
|
44
|
-
content_type: 'application/json'
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return respond RestClient.post url, params.to_json, headers if method == :post
|
|
48
|
-
respond RestClient.get url, headers.merge(params: params)
|
|
49
|
-
rescue RestClient::Exception => e
|
|
50
|
-
err = Error.new(e.response, e.http_code)
|
|
51
|
-
err.message = e.message
|
|
52
|
-
raise err
|
|
31
|
+
run_request(url, params, request_headers(true), method)
|
|
53
32
|
end
|
|
54
33
|
|
|
55
34
|
def signed_hotel_request(method, url, params)
|
|
56
|
-
params[:
|
|
35
|
+
params[:marker] = config.marker.to_s
|
|
57
36
|
params[:currency] ||= config.currency
|
|
37
|
+
params[:lang] ||= config.locale if params.has_key?(:lang)
|
|
58
38
|
|
|
59
39
|
params.delete_if{ |_, v| v == nil }
|
|
60
40
|
|
|
61
|
-
|
|
62
|
-
signature = Digest::MD5.hexdigest values.join(':')
|
|
63
|
-
params[:signature] = signature
|
|
64
|
-
params[:marker] = config.marker
|
|
41
|
+
params[:signature] = signature(params, config.marker)
|
|
65
42
|
|
|
66
|
-
|
|
67
|
-
x_access_token: config.token,
|
|
68
|
-
accept_encoding: 'gzip, deflate',
|
|
69
|
-
accept: :json,
|
|
70
|
-
content_type: 'application/json'
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
return respond RestClient.post url, params.to_json, headers if method == :post
|
|
74
|
-
respond RestClient.get url, headers.merge(params: params)
|
|
75
|
-
|
|
76
|
-
rescue RestClient::Exception => e
|
|
77
|
-
err = Error.new(e.response, e.http_code)
|
|
78
|
-
err.message = e.message
|
|
79
|
-
raise err
|
|
43
|
+
run_request(url, params, request_headers(true), method)
|
|
80
44
|
end
|
|
81
45
|
|
|
82
46
|
def sort_params(params)
|
|
@@ -91,6 +55,22 @@ module TravelPayouts
|
|
|
91
55
|
params.map{|p| param_values(p)}.flatten
|
|
92
56
|
end
|
|
93
57
|
|
|
58
|
+
def signature(params, marker=nil)
|
|
59
|
+
sign = marker ? [config.token, marker] : [config.token]
|
|
60
|
+
values = sign + param_values(sort_params(params))
|
|
61
|
+
Digest::MD5.hexdigest values.join(':')
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def request_headers(include_content_type = false)
|
|
65
|
+
{
|
|
66
|
+
x_access_token: config.token,
|
|
67
|
+
accept_encoding: 'gzip, deflate',
|
|
68
|
+
accept: :json
|
|
69
|
+
}.tap do |headers|
|
|
70
|
+
headers[:content_type] = 'application/json' if include_content_type
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
94
74
|
def respond(resp)
|
|
95
75
|
begin
|
|
96
76
|
hash = JSON.parse(resp)
|
|
@@ -101,6 +81,15 @@ module TravelPayouts
|
|
|
101
81
|
convert_to_mash hash
|
|
102
82
|
end
|
|
103
83
|
|
|
84
|
+
def run_request(url, params, headers, method)
|
|
85
|
+
return respond RestClient.post url, params.to_json, headers if method == :post
|
|
86
|
+
respond RestClient.get url, headers.merge(params: params)
|
|
87
|
+
rescue RestClient::Exception => e
|
|
88
|
+
err = Error.new(e.response, e.http_code)
|
|
89
|
+
err.message = e.message
|
|
90
|
+
raise err
|
|
91
|
+
end
|
|
92
|
+
|
|
104
93
|
def convert_to_mash(hash)
|
|
105
94
|
return Hashie::Mash.new hash if hash.is_a? Hash
|
|
106
95
|
return hash unless hash.is_a? Array
|