hasoffersv3 0.0.1 → 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/CHANGELOG.md +10 -0
- data/README.md +13 -2
- data/lib/hasoffersv3/base.rb +3 -2
- data/lib/hasoffersv3/configuration.rb +8 -2
- data/lib/hasoffersv3/conversion.rb +8 -0
- data/lib/hasoffersv3/raw_log.rb +2 -2
- data/lib/hasoffersv3/version.rb +1 -1
- data/spec/lib/base_spec.rb +27 -1
- data/spec/lib/conversion_spec.rb +16 -0
- data/spec/lib/raw_log_spec.rb +73 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5e19c9439e228e95df8e9790cc5771bee7ca3442
|
4
|
+
data.tar.gz: fa1150166459c267df061da7cac6901edf39c3c5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d65f052b5c37b02b885608be5edd223f481fc9fafaa52b8ca437b117badf2680853a46f745a35d1c048e5a9f83ce967140b22e190d73ae2c56f1469f5a3edc9
|
7
|
+
data.tar.gz: 0746fc08779f6cc2fff4d13ee66a020b74a184185c3f3cd0783dc031bb370a50b175410ed3f3c565a70e1dcddd55e77250b3d9e30b5d2b567284ff6a1a1facff
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
# 0.1.0
|
2
|
+
|
3
|
+
- [#14] added `.find_added_conversions` and `find_updated_conversions` calls
|
4
|
+
- [#16] added protocol configuration option for API url (default is `http`)
|
5
|
+
- [#13] fixed `get_log_expirations` call
|
6
|
+
- [#15] fixed missing tests for `RawLog`
|
7
|
+
|
8
|
+
# 0.0.1
|
9
|
+
|
10
|
+
- initial release
|
data/README.md
CHANGED
@@ -1,6 +1,17 @@
|
|
1
|
-
|
1
|
+
### Overview
|
2
2
|
|
3
|
-
|
3
|
+
[](http://travis-ci.org/HitFox/hasoffersv3)
|
4
|
+
|
5
|
+
### Synopsis
|
6
|
+
|
7
|
+
This gem provides a wrapper around HasOffers API in version 3, [HasOffers APIv3 Documentation](http://developers.hasoffers.com/#/brand).
|
8
|
+
|
9
|
+
### Compatibility
|
10
|
+
|
11
|
+
Supported ruby versions:
|
12
|
+
|
13
|
+
* 1.9.3
|
14
|
+
* 2.0
|
4
15
|
|
5
16
|
## Installation
|
6
17
|
|
data/lib/hasoffersv3/base.rb
CHANGED
@@ -4,7 +4,7 @@ require 'active_support/core_ext/object/to_query'
|
|
4
4
|
module HasOffersV3
|
5
5
|
class Base
|
6
6
|
class << self
|
7
|
-
def get_request(method, params, &block)
|
7
|
+
def get_request(method, params = {}, &block)
|
8
8
|
if block.nil?
|
9
9
|
make_request(:get, method, params)
|
10
10
|
else
|
@@ -17,7 +17,7 @@ module HasOffersV3
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
def post_request(method, params, &block)
|
20
|
+
def post_request(method, params = {}, &block)
|
21
21
|
if block.nil?
|
22
22
|
make_request(:post, method, params)
|
23
23
|
else
|
@@ -52,6 +52,7 @@ module HasOffersV3
|
|
52
52
|
|
53
53
|
def new_http(uri)
|
54
54
|
http = Net::HTTP.new(uri.host, uri.port)
|
55
|
+
http.use_ssl = true if uri.scheme == 'https'
|
55
56
|
http.read_timeout = 600
|
56
57
|
http
|
57
58
|
end
|
@@ -1,9 +1,15 @@
|
|
1
1
|
module HasOffersV3
|
2
2
|
class Configuration
|
3
|
-
attr_accessor :network_id, :api_key, :
|
3
|
+
attr_accessor :network_id, :api_key, :protocol, :host, :base_path
|
4
4
|
|
5
5
|
def initialize
|
6
|
-
@
|
6
|
+
@protocol = 'http'
|
7
|
+
@host = 'api.hasoffers.com'
|
8
|
+
@base_path = '/v3'
|
9
|
+
end
|
10
|
+
|
11
|
+
def base_uri
|
12
|
+
"#{protocol}://#{host}#{base_path}"
|
7
13
|
end
|
8
14
|
end
|
9
15
|
end
|
@@ -9,6 +9,14 @@ module HasOffersV3
|
|
9
9
|
def find_all(params = {})
|
10
10
|
get_request 'findAll', params
|
11
11
|
end
|
12
|
+
|
13
|
+
def find_added_conversions(params = {})
|
14
|
+
get_request 'findAddedConversions', params
|
15
|
+
end
|
16
|
+
|
17
|
+
def find_updated_conversions(params = {})
|
18
|
+
get_request 'findUpdatedConversions', params
|
19
|
+
end
|
12
20
|
end
|
13
21
|
end
|
14
22
|
end
|
data/lib/hasoffersv3/raw_log.rb
CHANGED
data/lib/hasoffersv3/version.rb
CHANGED
data/spec/lib/base_spec.rb
CHANGED
@@ -1,9 +1,35 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe HasOffersV3::Base do
|
4
|
+
subject { HasOffersV3::Base }
|
5
|
+
|
6
|
+
let(:url) { Regexp.new api_url('Base') }
|
7
|
+
|
4
8
|
describe :requires! do
|
5
9
|
it 'raise ArgumentError is parameters are missing' do
|
6
|
-
expect { subject.
|
10
|
+
expect { subject.requires!({}, [:dummy]) }.to raise_error(ArgumentError)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe ".get_request" do
|
15
|
+
it "should make a proper request" do
|
16
|
+
stub_call :get
|
17
|
+
response = subject.get_request 'test'
|
18
|
+
a_request(:get, url).with(query: hash_including({'Method' => 'test'})).should have_been_made
|
19
|
+
validate_call response
|
20
|
+
end
|
21
|
+
|
22
|
+
context "with HTTPS enabled" do
|
23
|
+
before(:each) do
|
24
|
+
HasOffersV3.configuration.protocol = 'https'
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should make a proper request" do
|
28
|
+
stub_call :get
|
29
|
+
response = subject.get_request 'test'
|
30
|
+
a_request(:get, url).with(query: hash_including({'Method' => 'test'})).should have_been_made
|
31
|
+
validate_call response
|
32
|
+
end
|
7
33
|
end
|
8
34
|
end
|
9
35
|
end
|
data/spec/lib/conversion_spec.rb
CHANGED
@@ -17,6 +17,22 @@ describe HasOffersV3::Conversion do
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
+
describe '.find_added_conversions' do
|
21
|
+
it 'should make a proper request call' do
|
22
|
+
response = subject.find_added_conversions
|
23
|
+
a_request(:get, url).with(query: hash_including({'Method' => 'findAddedConversions'})).should have_been_made
|
24
|
+
validate_call response
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe '.find_updated_conversions' do
|
29
|
+
it 'should make a proper request call' do
|
30
|
+
response = subject.find_updated_conversions
|
31
|
+
a_request(:get, url).with(query: hash_including({'Method' => 'findUpdatedConversions'})).should have_been_made
|
32
|
+
validate_call response
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
20
36
|
describe '.findAll' do
|
21
37
|
it 'should make a proper request call' do
|
22
38
|
response = subject.findAll
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe HasOffersV3::RawLog do
|
4
|
+
subject { HasOffersV3::RawLog }
|
5
|
+
|
6
|
+
let(:url) { Regexp.new api_url('RawLog') }
|
7
|
+
|
8
|
+
before :each do
|
9
|
+
stub_call :get
|
10
|
+
end
|
11
|
+
|
12
|
+
describe '.get_download_link' do
|
13
|
+
it 'should make a proper request call' do
|
14
|
+
response = subject.get_download_link log_type: 'clicks', log_filename: 'xxx'
|
15
|
+
a_request(:get, url).with(query: hash_including({'Method' => 'getDownloadLink'})).should have_been_made
|
16
|
+
validate_call response
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'when there is no log_type' do
|
20
|
+
it 'it should raise an exception' do
|
21
|
+
expect { subject.get_download_link log_filename: 'xxx' }.to raise_error ArgumentError
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'when there is no log_filename' do
|
26
|
+
it 'it should raise an exception' do
|
27
|
+
expect { subject.get_download_link log_type: 'clicks' }.to raise_error ArgumentError
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe '.get_log_expirations' do
|
33
|
+
it 'should make a proper request call' do
|
34
|
+
response = subject.get_log_expirations
|
35
|
+
a_request(:get, url).with(query: hash_including({'Method' => 'getLogExpirations'})).should have_been_made
|
36
|
+
validate_call response
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe '.list_date_dirs' do
|
41
|
+
it 'should make a proper request call' do
|
42
|
+
response = subject.list_date_dirs log_type: 'clicks'
|
43
|
+
a_request(:get, url).with(query: hash_including({'Method' => 'listDateDirs'})).should have_been_made
|
44
|
+
validate_call response
|
45
|
+
end
|
46
|
+
|
47
|
+
context 'when there is no log_type' do
|
48
|
+
it 'it should raise an exception' do
|
49
|
+
expect { subject.list_date_dirs }.to raise_error ArgumentError
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
describe '.list_logs' do
|
55
|
+
it 'should make a proper request call' do
|
56
|
+
response = subject.list_logs log_type: 'clicks', date_dir: '20140101'
|
57
|
+
a_request(:get, url).with(query: hash_including({'Method' => 'listLogs'})).should have_been_made
|
58
|
+
validate_call response
|
59
|
+
end
|
60
|
+
|
61
|
+
context 'when there is no log_type' do
|
62
|
+
it 'it should raise an exception' do
|
63
|
+
expect { subject.list_logs date_dir: '20140101' }.to raise_error ArgumentError
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
context 'when there is no date_dir' do
|
68
|
+
it 'it should raise an exception' do
|
69
|
+
expect { subject.list_logs log_type: 'clicks' }.to raise_error ArgumentError
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hasoffersv3
|
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
|
- Maximilian Seifert
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2014-01-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: oj
|
@@ -107,6 +107,7 @@ files:
|
|
107
107
|
- .rspec
|
108
108
|
- .ruby-gemset
|
109
109
|
- .ruby-version
|
110
|
+
- CHANGELOG.md
|
110
111
|
- Gemfile
|
111
112
|
- LICENSE.txt
|
112
113
|
- README.md
|
@@ -131,6 +132,7 @@ files:
|
|
131
132
|
- spec/lib/base_spec.rb
|
132
133
|
- spec/lib/conversion_spec.rb
|
133
134
|
- spec/lib/offer_spec.rb
|
135
|
+
- spec/lib/raw_log_spec.rb
|
134
136
|
- spec/lib/report_spec.rb
|
135
137
|
- spec/spec_helper.rb
|
136
138
|
homepage:
|
@@ -164,5 +166,6 @@ test_files:
|
|
164
166
|
- spec/lib/base_spec.rb
|
165
167
|
- spec/lib/conversion_spec.rb
|
166
168
|
- spec/lib/offer_spec.rb
|
169
|
+
- spec/lib/raw_log_spec.rb
|
167
170
|
- spec/lib/report_spec.rb
|
168
171
|
- spec/spec_helper.rb
|