metrica_api 0.0.2 → 0.1.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 +4 -4
- data/Gemfile.lock +83 -0
- data/README.md +1 -1
- data/lib/metrica_api/request.rb +4 -10
- data/lib/metrica_api/version.rb +1 -1
- data/lib/metrica_api.rb +2 -4
- data/metrica_api.gemspec +1 -2
- data/spec/request_spec.rb +15 -16
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a44494284a8997a9074de743d5d953294e1ff114
|
4
|
+
data.tar.gz: be1d35366825e2ea4a942a032e5c4f707cca8d02
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b216cff47580603f76c34244b099327aa29140b23395086c48e9d1762a13db50a32856af50ad5014a3702610f499fc497b2ae91a26b9d0f32c4558b5688593b
|
7
|
+
data.tar.gz: 489f47dce98badedff9ee8d2376653eb40692949cb2ac799a043c61240a7abefcfae6be2752b8d76e8d5b80a28ff9d97f6b8b4370fda68f406a0e4f08c8710bc
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
metrica_api (0.1.0)
|
5
|
+
json (~> 2.0, >= 2.0.0)
|
6
|
+
rest-client (~> 2.0, >= 2.0.0)
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
addressable (2.6.0)
|
12
|
+
public_suffix (>= 2.0.2, < 4.0)
|
13
|
+
ast (2.4.0)
|
14
|
+
crack (0.4.3)
|
15
|
+
safe_yaml (~> 1.0.0)
|
16
|
+
diff-lcs (1.3)
|
17
|
+
domain_name (0.5.20180417)
|
18
|
+
unf (>= 0.0.5, < 1.0.0)
|
19
|
+
hashdiff (0.3.8)
|
20
|
+
http-cookie (1.0.3)
|
21
|
+
domain_name (~> 0.5)
|
22
|
+
jaro_winkler (1.5.2)
|
23
|
+
json (2.1.0)
|
24
|
+
mime-types (3.2.2)
|
25
|
+
mime-types-data (~> 3.2015)
|
26
|
+
mime-types-data (3.2018.0812)
|
27
|
+
netrc (0.11.0)
|
28
|
+
parallel (1.17.0)
|
29
|
+
parser (2.6.3.0)
|
30
|
+
ast (~> 2.4.0)
|
31
|
+
powerpack (0.1.2)
|
32
|
+
public_suffix (3.0.3)
|
33
|
+
rainbow (3.0.0)
|
34
|
+
rake (12.3.2)
|
35
|
+
rest-client (2.0.2)
|
36
|
+
http-cookie (>= 1.0.2, < 2.0)
|
37
|
+
mime-types (>= 1.16, < 4.0)
|
38
|
+
netrc (~> 0.8)
|
39
|
+
rspec (3.7.0)
|
40
|
+
rspec-core (~> 3.7.0)
|
41
|
+
rspec-expectations (~> 3.7.0)
|
42
|
+
rspec-mocks (~> 3.7.0)
|
43
|
+
rspec-core (3.7.1)
|
44
|
+
rspec-support (~> 3.7.0)
|
45
|
+
rspec-expectations (3.7.0)
|
46
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
47
|
+
rspec-support (~> 3.7.0)
|
48
|
+
rspec-mocks (3.7.0)
|
49
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
50
|
+
rspec-support (~> 3.7.0)
|
51
|
+
rspec-support (3.7.1)
|
52
|
+
rubocop (0.58.2)
|
53
|
+
jaro_winkler (~> 1.5.1)
|
54
|
+
parallel (~> 1.10)
|
55
|
+
parser (>= 2.5, != 2.5.1.1)
|
56
|
+
powerpack (~> 0.1)
|
57
|
+
rainbow (>= 2.2.2, < 4.0)
|
58
|
+
ruby-progressbar (~> 1.7)
|
59
|
+
unicode-display_width (~> 1.0, >= 1.0.1)
|
60
|
+
ruby-progressbar (1.10.0)
|
61
|
+
safe_yaml (1.0.4)
|
62
|
+
unf (0.1.4)
|
63
|
+
unf_ext
|
64
|
+
unf_ext (0.0.7.5)
|
65
|
+
unicode-display_width (1.5.0)
|
66
|
+
webmock (2.3.2)
|
67
|
+
addressable (>= 2.3.6)
|
68
|
+
crack (>= 0.3.2)
|
69
|
+
hashdiff
|
70
|
+
|
71
|
+
PLATFORMS
|
72
|
+
ruby
|
73
|
+
|
74
|
+
DEPENDENCIES
|
75
|
+
bundler (~> 1.6)
|
76
|
+
metrica_api!
|
77
|
+
rake (~> 12.3.0, >= 12.3.0)
|
78
|
+
rspec (~> 3.7.0, >= 3.7.0)
|
79
|
+
rubocop (~> 0.58.2)
|
80
|
+
webmock (~> 2.3.2, >= 2.3.2)
|
81
|
+
|
82
|
+
BUNDLED WITH
|
83
|
+
1.16.1
|
data/README.md
CHANGED
data/lib/metrica_api/request.rb
CHANGED
@@ -20,10 +20,8 @@ class MetricaApi
|
|
20
20
|
logger << response
|
21
21
|
end
|
22
22
|
end
|
23
|
-
rescue RestClient::Unauthorized,
|
24
|
-
|
25
|
-
RestClient::BadRequest,
|
26
|
-
RestClient::ResourceNotFound => e
|
23
|
+
rescue RestClient::Unauthorized, RestClient::Forbidden,
|
24
|
+
RestClient::BadRequest, RestClient::ResourceNotFound => e
|
27
25
|
raise MetricaApi::RequestError,
|
28
26
|
"url: #{full_url}, original: #{e.message}"
|
29
27
|
rescue SocketError => e
|
@@ -42,7 +40,7 @@ class MetricaApi
|
|
42
40
|
{
|
43
41
|
method: :get,
|
44
42
|
url: base_url,
|
45
|
-
headers: { params:
|
43
|
+
headers: { params: params, 'Authorization' => "OAuth #{options.fetch(:oauth_token)}" },
|
46
44
|
log: MetricaApi.logger
|
47
45
|
}.compact
|
48
46
|
end
|
@@ -56,15 +54,11 @@ class MetricaApi
|
|
56
54
|
end
|
57
55
|
|
58
56
|
def query
|
59
|
-
|
57
|
+
params.map do |key, value|
|
60
58
|
[CGI.escape(key.to_s), '=', CGI.escape(value.to_s)]
|
61
59
|
end.map(&:join).join('&')
|
62
60
|
end
|
63
61
|
|
64
|
-
def params_with_token
|
65
|
-
@_params_with_token ||= params.merge(oauth_token: options.fetch(:oauth_token))
|
66
|
-
end
|
67
|
-
|
68
62
|
def base_url
|
69
63
|
@_base_url ||= begin
|
70
64
|
api_section = options[:api_section]
|
data/lib/metrica_api/version.rb
CHANGED
data/lib/metrica_api.rb
CHANGED
@@ -8,7 +8,7 @@ require 'metrica_api/sections/counters'
|
|
8
8
|
# Yandex Metrica API module
|
9
9
|
class MetricaApi
|
10
10
|
|
11
|
-
API_HOST = 'https://api-metrika.yandex.
|
11
|
+
API_HOST = 'https://api-metrika.yandex.net'
|
12
12
|
DEFAULT_VERSION = 'v1'
|
13
13
|
DEFAULT_FORMAT = 'json'
|
14
14
|
|
@@ -26,7 +26,7 @@ class MetricaApi
|
|
26
26
|
|
27
27
|
attr_accessor :logger
|
28
28
|
|
29
|
-
# @param options [Hash<:api_section, :method, :oauth_token[, :v[, :format]]>]
|
29
|
+
# @param options [Hash<:api_section, :method, :oauth_token[, :v[, :format]]>] path to method
|
30
30
|
# @param params [Hash] params for method
|
31
31
|
# @result [Hash] response as ruby plain object
|
32
32
|
def call(options, params)
|
@@ -49,8 +49,6 @@ class MetricaApi
|
|
49
49
|
Request
|
50
50
|
end
|
51
51
|
|
52
|
-
private
|
53
|
-
|
54
52
|
end
|
55
53
|
|
56
54
|
end
|
data/metrica_api.gemspec
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
# coding: utf-8
|
3
2
|
|
4
3
|
lib = File.expand_path('lib', __dir__)
|
5
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
@@ -30,6 +29,6 @@ Gem::Specification.new do |spec|
|
|
30
29
|
spec.add_development_dependency 'bundler', '~> 1.6'
|
31
30
|
spec.add_development_dependency 'rake', '~> 12.3.0', '>= 12.3.0'
|
32
31
|
spec.add_development_dependency 'rspec', '~> 3.7.0', '>= 3.7.0'
|
33
|
-
spec.add_development_dependency 'rubocop', '~> 0.
|
32
|
+
spec.add_development_dependency 'rubocop', '~> 0.58.2'
|
34
33
|
spec.add_development_dependency 'webmock', '~> 2.3.2', '>= 2.3.2'
|
35
34
|
end
|
data/spec/request_spec.rb
CHANGED
@@ -11,12 +11,12 @@ describe 'Requests' do
|
|
11
11
|
it 'performs GET-request' do
|
12
12
|
stub_request(
|
13
13
|
:get,
|
14
|
-
'https://api-metrika.yandex.
|
15
|
-
|
16
|
-
|
14
|
+
'https://api-metrika.yandex.net/management/v1/counters.json?some_param=some_value'
|
15
|
+
).with(headers: { 'Authorization' => 'OAuth oauth_token' })
|
16
|
+
.to_return(body: '{"some_array": ["some", "items"], "some_number": 35}')
|
17
17
|
|
18
|
-
expect(api_object.data(
|
19
|
-
eq(
|
18
|
+
expect(api_object.data(some_param: 'some_value')).to(
|
19
|
+
eq('some_array' => %w[some items], 'some_number' => 35)
|
20
20
|
)
|
21
21
|
end
|
22
22
|
end
|
@@ -27,12 +27,12 @@ describe 'Requests' do
|
|
27
27
|
it 'performs GET-request' do
|
28
28
|
stub_request(
|
29
29
|
:get,
|
30
|
-
'https://api-metrika.yandex.
|
31
|
-
|
32
|
-
|
30
|
+
'https://api-metrika.yandex.net/stat/v1/data.json?some_param=some_value'
|
31
|
+
).with(headers: { 'Authorization' => 'OAuth oauth_token' })
|
32
|
+
.to_return(body: '{"some_array": ["some", "items"], "some_number": 35}')
|
33
33
|
|
34
|
-
expect(api_object.data(
|
35
|
-
eq(
|
34
|
+
expect(api_object.data(some_param: 'some_value')).to(
|
35
|
+
eq('some_array' => %w[some items], 'some_number' => 35)
|
36
36
|
)
|
37
37
|
end
|
38
38
|
end
|
@@ -45,19 +45,18 @@ describe 'Requests' do
|
|
45
45
|
it 'logs requests' do
|
46
46
|
stub_request(
|
47
47
|
:get,
|
48
|
-
'https://api-metrika.yandex.
|
49
|
-
|
50
|
-
|
48
|
+
'https://api-metrika.yandex.net/stat/v1/data.json?some_param=some_value'
|
49
|
+
).with(headers: { 'Authorization' => 'OAuth oauth_token' })
|
50
|
+
.to_return(body: '{"some_array": ["some", "items"], "some_number": 35}')
|
51
51
|
|
52
52
|
expect(logger).to(
|
53
|
-
receive(:<<).with('https://api-metrika.yandex.
|
54
|
-
'some_param=some_value&oauth_token=oauth_token')
|
53
|
+
receive(:<<).with('https://api-metrika.yandex.net/stat/v1/data.json?some_param=some_value')
|
55
54
|
)
|
56
55
|
expect(logger).to(
|
57
56
|
receive(:<<).with('{"some_array": ["some", "items"], "some_number": 35}')
|
58
57
|
)
|
59
58
|
|
60
|
-
MetricaApi.reporting(access_token).data(
|
59
|
+
MetricaApi.reporting(access_token).data(some_param: 'some_value')
|
61
60
|
end
|
62
61
|
end
|
63
62
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metrica_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OneRetarget.com
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-05-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -110,14 +110,14 @@ dependencies:
|
|
110
110
|
requirements:
|
111
111
|
- - "~>"
|
112
112
|
- !ruby/object:Gem::Version
|
113
|
-
version: 0.
|
113
|
+
version: 0.58.2
|
114
114
|
type: :development
|
115
115
|
prerelease: false
|
116
116
|
version_requirements: !ruby/object:Gem::Requirement
|
117
117
|
requirements:
|
118
118
|
- - "~>"
|
119
119
|
- !ruby/object:Gem::Version
|
120
|
-
version: 0.
|
120
|
+
version: 0.58.2
|
121
121
|
- !ruby/object:Gem::Dependency
|
122
122
|
name: webmock
|
123
123
|
requirement: !ruby/object:Gem::Requirement
|
@@ -149,6 +149,7 @@ extensions: []
|
|
149
149
|
extra_rdoc_files: []
|
150
150
|
files:
|
151
151
|
- Gemfile
|
152
|
+
- Gemfile.lock
|
152
153
|
- LICENSE.txt
|
153
154
|
- README.md
|
154
155
|
- lib/metrica_api.rb
|