access 1.1.7 → 2.0.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/.coveralls.yml +1 -0
- data/.gitignore +2 -0
- data/.travis.yml +12 -0
- data/Guardfile +7 -0
- data/README.md +159 -23
- data/Rakefile +13 -0
- data/access.gemspec +6 -1
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/lib/access.rb +21 -10
- data/lib/access/api.rb +188 -64
- data/lib/access/autocomplete.rb +11 -0
- data/lib/access/campaign.rb +24 -0
- data/lib/access/category.rb +16 -2
- data/lib/access/channel.rb +24 -0
- data/lib/access/city_savings.rb +16 -0
- data/lib/access/config.rb +8 -7
- data/lib/access/error.rb +8 -2
- data/lib/access/filter.rb +30 -2
- data/lib/access/info.rb +13 -0
- data/lib/access/link.rb +17 -0
- data/lib/access/location.rb +17 -2
- data/lib/access/member.rb +11 -0
- data/lib/access/oauth_application.rb +31 -0
- data/lib/access/offer.rb +24 -20
- data/lib/access/redeem.rb +11 -4
- data/lib/access/report.rb +10 -0
- data/lib/access/request.rb +25 -20
- data/lib/access/response.rb +127 -0
- data/lib/access/spot.rb +28 -0
- data/lib/access/store.rb +16 -2
- data/lib/access/token.rb +18 -0
- data/lib/access/verify.rb +11 -2
- data/lib/access/version.rb +1 -1
- data/test/access/autocomplete_test.rb +53 -0
- data/test/access/category_test.rb +64 -0
- data/test/access/city_savings_test.rb +5 -0
- data/test/access/filter_test.rb +40 -0
- data/test/access/location_test.rb +59 -0
- data/test/access/member_test.rb +5 -0
- data/test/access/oauth_application_test.rb +91 -0
- data/test/access/offer_test.rb +71 -0
- data/test/access/redeem_test.rb +38 -0
- data/test/access/report_test.rb +36 -0
- data/test/access/store_test.rb +65 -0
- data/test/access/token_test.rb +35 -0
- data/test/access/verify_test.rb +29 -0
- data/test/access/version_test.rb +9 -0
- data/test/fixtures/autocomplete_search.yml +207 -0
- data/test/fixtures/autocomplete_search_categories.yml +181 -0
- data/test/fixtures/autocomplete_search_locations.yml +173 -0
- data/test/fixtures/autocomplete_search_offers.yml +181 -0
- data/test/fixtures/autocomplete_search_stores.yml +185 -0
- data/test/fixtures/category_find.yml +303 -0
- data/test/fixtures/category_search.yml +683 -0
- data/test/fixtures/category_search_fail_member_key.yml +102 -0
- data/test/fixtures/filter_find.yml +70 -0
- data/test/fixtures/filter_search.yml +195 -0
- data/test/fixtures/location_find.yml +923 -0
- data/test/fixtures/location_search.yml +378 -0
- data/test/fixtures/location_search_fail_member_key.yml +367 -0
- data/test/fixtures/national_stores.yml +4135 -0
- data/test/fixtures/oauth_application_find.yml +163 -0
- data/test/fixtures/oauth_application_search.yml +134 -0
- data/test/fixtures/oauth_application_search_fail_member_key.yml +268 -0
- data/test/fixtures/oauth_application_token_find.yml +249 -0
- data/test/fixtures/oauth_application_token_search.yml +98 -0
- data/test/fixtures/offer_find.yml +683 -0
- data/test/fixtures/offer_search.yml +329 -0
- data/test/fixtures/offer_search_fail_member_key.yml +102 -0
- data/test/fixtures/redeem_offer_no_redeem_type.yml +423 -0
- data/test/fixtures/store_find.yml +333 -0
- data/test/fixtures/store_search.yml +227 -0
- data/test/fixtures/store_search_fail_member_key.yml +102 -0
- data/test/fixtures/subcategory_find.yml +283 -0
- data/test/fixtures/token_find.yml +245 -0
- data/test/fixtures/token_search.yml +301 -0
- data/test/fixtures/verify_filter.yml +290 -0
- data/test/fixtures/verify_token.yml +78 -0
- data/test/test_helper.rb +15 -0
- metadata +183 -11
- data/test/offers/offer_test.rb +0 -5
data/lib/access/request.rb
CHANGED
@@ -1,39 +1,44 @@
|
|
1
1
|
module Access
|
2
2
|
class Request
|
3
3
|
include HTTParty
|
4
|
-
# debug_output $stdout # enable this to log all the requests
|
5
4
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
5
|
+
def get(path, api_type, options={}, &block)
|
6
|
+
url = set_base(api_type, path)
|
7
|
+
results = self.class.get(url, headers: headers(options[:access_token]), query: options)
|
8
|
+
if should_return_json?(options[:return_json])
|
9
|
+
hashify_results?(options[:hashify]) ? results.hashify : results
|
10
|
+
else
|
11
|
+
block.call results
|
12
|
+
end
|
11
13
|
end
|
12
14
|
|
13
|
-
def
|
14
|
-
|
15
|
-
results = self.class.get(
|
16
|
-
|
15
|
+
def get_for_filter(path, api_type, filter, options={}, &block)
|
16
|
+
url = set_base(api_type, path)
|
17
|
+
results = self.class.get(url, headers: headers(options[:access_token]), body: filter)
|
18
|
+
if should_return_json?(options[:return_json])
|
19
|
+
hashify_results?(options[:hashify]) ? results.hashify : results
|
20
|
+
else
|
21
|
+
block.call results
|
22
|
+
end
|
17
23
|
end
|
18
24
|
|
19
25
|
private
|
20
26
|
|
21
|
-
def
|
22
|
-
Access.config.
|
27
|
+
def set_base(api_type, path)
|
28
|
+
"https://#{ api_type }#{ Access::Config::DOMAINS[Access.config.api_environment] }.adcrws.com/v1#{path}"
|
23
29
|
end
|
24
30
|
|
25
|
-
def
|
26
|
-
|
31
|
+
def headers(token_param)
|
32
|
+
raise Access::Error::NoAccessToken if (access_token = token_param || Access.config.access_token).nil?
|
33
|
+
{"Access-Token" => access_token, 'Content-Type' => 'application/json', 'Accept' => 'application/json'}
|
27
34
|
end
|
28
35
|
|
29
|
-
def
|
30
|
-
|
31
|
-
self.class.format Access.config.format.to_sym
|
36
|
+
def should_return_json?(return_json_param)
|
37
|
+
return_json_param == 'true' || (return_json_param != 'false' && Access.config.return_json == 'true')
|
32
38
|
end
|
33
39
|
|
34
|
-
def
|
35
|
-
|
36
|
-
{"Access-Token" => Access.config.access_token}
|
40
|
+
def hashify_results?(hashify_param)
|
41
|
+
hashify_param == 'true' || (hashify_param != 'false' && Access.config.hashify == 'true')
|
37
42
|
end
|
38
43
|
|
39
44
|
end
|
@@ -0,0 +1,127 @@
|
|
1
|
+
module Access
|
2
|
+
class Response
|
3
|
+
|
4
|
+
attr_accessor :info, :offers, :stores, :locations, :categories, :suggestions, :oauth_applications, :access_tokens, :oauth_tokens, :oauth_token, :verify, :reports, :members, :filters, :links, :dev_node, :message, :status, :success, :error, :response_status, :content_type, :redemption_method, :details, :oauth_access_token
|
5
|
+
|
6
|
+
def initialize(response)
|
7
|
+
response.each { |key, value| instance_variable_set("@#{key}", value) if self.class.instance_methods.include? key.to_sym }
|
8
|
+
@response_status = response.message
|
9
|
+
@status ||= response.code
|
10
|
+
check_success(response)
|
11
|
+
if @success
|
12
|
+
@info = Access::Info.new(@info) if @info
|
13
|
+
(@links = @links.is_a?(Array) ? Access::Link.process_batch(@links) : Access::Link.new(@links)) if @links
|
14
|
+
process_data
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
def check_success(response)
|
20
|
+
if response.success?
|
21
|
+
@success = true
|
22
|
+
else
|
23
|
+
create_error
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def create_error
|
28
|
+
@success = false
|
29
|
+
@error = Access::Error.new(@response_status, @status, @message)
|
30
|
+
remove_instance_variable(:@message) if @message
|
31
|
+
remove_instance_variable(:@status)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
class OfferResponse < Response
|
36
|
+
def process_data
|
37
|
+
# for when you search and it returns 0
|
38
|
+
(@offers = []; create_error) if @message
|
39
|
+
@offers = Access::Offer.process_batch(@offers)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
class StoreResponse < Response
|
44
|
+
def process_data
|
45
|
+
(@stores = []; create_error) if @message
|
46
|
+
@stores = Access::Store.process_batch(@stores)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
class LocationResponse < Response
|
51
|
+
def process_data
|
52
|
+
(@locations = []; create_error) if @message
|
53
|
+
@locations = Access::Location.process_batch(@locations)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
class CategoryResponse < Response
|
58
|
+
def process_data
|
59
|
+
(@categories = []; create_error) if @message
|
60
|
+
@categories = Access::Category.process_batch(@categories)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
class AutocompleteResponse < Response
|
65
|
+
def process_data
|
66
|
+
# (@suggestions = []; create_error) if @message
|
67
|
+
@suggestions = Access::Autocomplete.new(@suggestions)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
class OauthApplicationResponse < Response
|
72
|
+
def process_data
|
73
|
+
(@oauth_applications = []; create_error) if @message
|
74
|
+
@oauth_applications = Access::OauthApplication.process_batch(@oauth_applications)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
class TokenResponse < Response
|
79
|
+
def process_data
|
80
|
+
(create_error) if @message
|
81
|
+
@access_tokens = Access::Token.process_batch(@access_tokens) if @access_tokens
|
82
|
+
@oauth_tokens = Access::Token.process_batch(@oauth_tokens) if @oauth_tokens
|
83
|
+
@oauth_token = Access::Token.new(@oauth_token) if @oauth_token
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
class VerifyResponse < Response
|
88
|
+
def process_data
|
89
|
+
@oauth_access_token = Access::Verify.new(@oauth_access_token) if @oauth_access_token
|
90
|
+
@offers = Access::Verify.new(@offers) if @offers
|
91
|
+
@categories = Access::Verify.new(@categories) if @categories
|
92
|
+
@locations = Access::Verify.new(@locations) if @locations
|
93
|
+
@stores = Access::Verify.new(@stores) if @stores
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
class RedeemResponse < Response
|
98
|
+
def process_data
|
99
|
+
@details = Access::Redeem.new(@details) if @details
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
class ReportResponse < Response
|
104
|
+
def process_data
|
105
|
+
@reports = Access::Report.new(@reports)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
class MemberResponse < Response
|
110
|
+
def process_data
|
111
|
+
@members = Access::Member.process_batch(@members)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
class FilterResponse < Response
|
116
|
+
def process_data
|
117
|
+
@filters = Access::Filter.process_batch(@filters)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
class CitySavingsResponse < Response
|
122
|
+
def process_data
|
123
|
+
# something?
|
124
|
+
# @members = Access::Member.process_batch(@members)
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
data/lib/access/spot.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
module Access
|
2
|
+
class Spot
|
3
|
+
|
4
|
+
def self.search_by_channel(channel_key, options = {})
|
5
|
+
Access::api.new.search_spots_by_channel channel_key, options
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.search_by_campaign(campaign_key, options = {})
|
9
|
+
Access::api.new.search_spots_by_campaign campaign_key, options
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.find(spot_key, options = {})
|
13
|
+
Access::api.new.find_spot spot_key, options
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.process_batch(chunk)
|
17
|
+
chunk.map { |campaign| new(campaign) }
|
18
|
+
end
|
19
|
+
|
20
|
+
def initialize(values)
|
21
|
+
self.class.class_eval {attr_reader *values.keys }
|
22
|
+
values.each do |attribute_name, attribute_value|
|
23
|
+
self.instance_variable_set("@#{attribute_name}", attribute_value)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
data/lib/access/store.rb
CHANGED
@@ -5,13 +5,27 @@ module Access
|
|
5
5
|
Access::Api.new.search_stores options
|
6
6
|
end
|
7
7
|
|
8
|
-
def self.find(
|
9
|
-
Access::Api.new.find_store
|
8
|
+
def self.find(store_key, options = {})
|
9
|
+
Access::Api.new.find_store store_key, options
|
10
10
|
end
|
11
11
|
|
12
12
|
def self.national(options = {})
|
13
13
|
Access::Api.new.national_stores options
|
14
14
|
end
|
15
15
|
|
16
|
+
def self.process_batch(chunk)
|
17
|
+
chunk.map { |store| new(store) }
|
18
|
+
end
|
19
|
+
|
20
|
+
def initialize(values)
|
21
|
+
self.class.class_eval {attr_reader *values.keys }
|
22
|
+
values.each do |attribute_name, attribute_value|
|
23
|
+
self.instance_variable_set("@#{attribute_name}", attribute_value)
|
24
|
+
end
|
25
|
+
@links = Access::Link.new(@links) if @links
|
26
|
+
@store_categories = Access::Category.process_batch(@store_categories) if @store_categories
|
27
|
+
@physical_location = Access::Location.new(@physical_location) if @physical_location
|
28
|
+
end
|
29
|
+
|
16
30
|
end
|
17
31
|
end
|
data/lib/access/token.rb
CHANGED
@@ -2,12 +2,30 @@ module Access
|
|
2
2
|
class Token
|
3
3
|
|
4
4
|
def self.search(options = {})
|
5
|
+
# Internal Admin only Call
|
5
6
|
Access::Api.new.search_tokens options
|
6
7
|
end
|
7
8
|
|
8
9
|
def self.find(token, options = {})
|
10
|
+
# Internal Admin only Call
|
9
11
|
Access::Api.new.find_token token, options
|
10
12
|
end
|
11
13
|
|
14
|
+
def self.process_batch(chunk)
|
15
|
+
chunk.map { |token| new(token) }
|
16
|
+
end
|
17
|
+
|
18
|
+
def initialize(values)
|
19
|
+
self.class.class_eval {attr_reader *values.keys }
|
20
|
+
values.each do |attribute_name, attribute_value|
|
21
|
+
self.instance_variable_set("@#{attribute_name}", attribute_value)
|
22
|
+
end
|
23
|
+
@links = Access::Link.new(@links) if @links
|
24
|
+
end
|
25
|
+
|
26
|
+
def has_scope?
|
27
|
+
|
28
|
+
end
|
29
|
+
|
12
30
|
end
|
13
31
|
end
|
data/lib/access/verify.rb
CHANGED
@@ -5,8 +5,17 @@ module Access
|
|
5
5
|
Access::Api.new.verify_token options
|
6
6
|
end
|
7
7
|
|
8
|
-
def self.filter(options = {})
|
9
|
-
Access::Api.new.verify_filter options
|
8
|
+
def self.filter(filter, options = {})
|
9
|
+
Access::Api.new.verify_filter filter, options
|
10
|
+
end
|
11
|
+
|
12
|
+
def initialize(values)
|
13
|
+
self.class.class_eval { attr_reader *values.keys }
|
14
|
+
values.each do |attribute_name, attribute_value|
|
15
|
+
self.instance_variable_set("@#{attribute_name}", attribute_value)
|
16
|
+
end
|
17
|
+
@categories = Access::Category.process_batch(@categories) if @categories
|
18
|
+
@redemption_methods = Access::Redeem.process_batch(@redemption_methods) if @redemption_methods
|
10
19
|
end
|
11
20
|
|
12
21
|
end
|
data/lib/access/version.rb
CHANGED
@@ -0,0 +1,53 @@
|
|
1
|
+
require './test/test_helper'
|
2
|
+
|
3
|
+
class AutocompleteTest < Minitest::Test
|
4
|
+
|
5
|
+
def test_autocompletes_search
|
6
|
+
VCR.use_cassette('autocomplete search') do
|
7
|
+
autocompletes_response = Access::Autocomplete.search(member_key: 'API_RUBY_GEM_TEST', per_page: 1)
|
8
|
+
assert autocompletes_response.success
|
9
|
+
assert_kind_of Access::AutocompleteResponse, autocompletes_response
|
10
|
+
assert_kind_of Access::Autocomplete, autocompletes_response.suggestions
|
11
|
+
assert_kind_of Access::Store, autocompletes_response.suggestions.stores.first
|
12
|
+
assert_kind_of Access::Location, autocompletes_response.suggestions.locations.first
|
13
|
+
assert_kind_of Access::Category, autocompletes_response.suggestions.categories.first
|
14
|
+
assert_kind_of Access::Offer, autocompletes_response.suggestions.offers.first
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_autocompletes_search_offers
|
19
|
+
VCR.use_cassette('autocomplete search offers') do
|
20
|
+
autocompletes_response = Access::Autocomplete.search_offers(member_key: 'API_RUBY_GEM_TEST', per_page: 1)
|
21
|
+
assert autocompletes_response.success
|
22
|
+
assert_kind_of Array, autocompletes_response.suggestions.offers
|
23
|
+
assert_kind_of Access::Offer, autocompletes_response.suggestions.offers.first
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_autocompletes_search_stores
|
28
|
+
VCR.use_cassette('autocomplete search stores') do
|
29
|
+
autocompletes_response = Access::Autocomplete.search_stores(member_key: 'API_RUBY_GEM_TEST', per_page: 1)
|
30
|
+
assert autocompletes_response.success
|
31
|
+
assert_kind_of Array, autocompletes_response.suggestions.stores
|
32
|
+
assert_kind_of Access::Store, autocompletes_response.suggestions.stores.first
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_autocompletes_search_locations
|
37
|
+
VCR.use_cassette('autocomplete search locations') do
|
38
|
+
autocompletes_response = Access::Autocomplete.search_locations(member_key: 'API_RUBY_GEM_TEST', per_page: 1)
|
39
|
+
assert autocompletes_response.success
|
40
|
+
assert_kind_of Array, autocompletes_response.suggestions.locations
|
41
|
+
assert_kind_of Access::Location, autocompletes_response.suggestions.locations.first
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_autocompletes_search_categories
|
46
|
+
VCR.use_cassette('autocomplete search categories') do
|
47
|
+
autocompletes_response = Access::Autocomplete.search_categories(member_key: 'API_RUBY_GEM_TEST', per_page: 1)
|
48
|
+
assert autocompletes_response.success
|
49
|
+
assert_kind_of Array, autocompletes_response.suggestions.categories
|
50
|
+
assert_kind_of Access::Category, autocompletes_response.suggestions.categories.first
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require './test/test_helper'
|
2
|
+
|
3
|
+
class CategoryTest < Minitest::Test
|
4
|
+
|
5
|
+
def get_first_category
|
6
|
+
VCR.use_cassette('category search') do
|
7
|
+
@first_category = Access::Category.search(member_key: 'API_RUBY_GEM_TEST', per_page: 1).categories.first
|
8
|
+
@first_subcategory = Access::Category.search(member_key: 'API_RUBY_GEM_TEST', per_page: 1).categories.first.subcategories.first
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_categories_search
|
13
|
+
VCR.use_cassette('category search') do
|
14
|
+
categories_response = Access::Category.search(member_key: 'API_RUBY_GEM_TEST', per_page: 1)
|
15
|
+
assert categories_response.success
|
16
|
+
first_category = categories_response.categories.first
|
17
|
+
assert_kind_of Access::CategoryResponse, categories_response
|
18
|
+
assert_kind_of Access::Link, categories_response.links
|
19
|
+
assert_kind_of Array, categories_response.categories
|
20
|
+
assert_kind_of Access::Category, first_category
|
21
|
+
assert_kind_of Access::Link, first_category.links
|
22
|
+
assert_kind_of Access::Category, first_category.subcategories.first
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_categories_find
|
27
|
+
get_first_category
|
28
|
+
VCR.use_cassette('category find') do
|
29
|
+
categories_response = Access::Category.find(@first_category.category_key, member_key: 'API_RUBY_GEM_TEST')
|
30
|
+
assert categories_response.success
|
31
|
+
first_category = categories_response.categories.first
|
32
|
+
assert_kind_of Access::CategoryResponse, categories_response
|
33
|
+
assert_kind_of Access::Category, first_category
|
34
|
+
assert_kind_of Access::Link, first_category.links
|
35
|
+
assert_kind_of Access::Category, first_category.subcategories.first
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_subcategories_find
|
40
|
+
get_first_category
|
41
|
+
VCR.use_cassette('subcategory find') do
|
42
|
+
categories_response = Access::Category.find(@first_subcategory.category_key, member_key: 'API_RUBY_GEM_TEST')
|
43
|
+
assert categories_response.success
|
44
|
+
first_category = categories_response.categories.first
|
45
|
+
assert_kind_of Access::CategoryResponse, categories_response
|
46
|
+
assert_kind_of Access::Category, first_category
|
47
|
+
assert_kind_of Access::Link, first_category.links
|
48
|
+
assert_kind_of Access::Category, first_category.subcategory_siblings.first
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_categories_fail_member_key
|
53
|
+
VCR.use_cassette('category search fail member key') do
|
54
|
+
subcategories_response = Access::Category.search(query: 'pizza')
|
55
|
+
refute subcategories_response.success
|
56
|
+
assert_kind_of Access::CategoryResponse, subcategories_response
|
57
|
+
assert_kind_of Access::Error, subcategories_response.error
|
58
|
+
assert_equal 401, subcategories_response.error.status_code
|
59
|
+
assert_equal "Must include a member_key to see details.", subcategories_response.error.message
|
60
|
+
assert_equal "Unauthorized", subcategories_response.error.status
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require './test/test_helper'
|
2
|
+
|
3
|
+
class FilterTest < Minitest::Test
|
4
|
+
|
5
|
+
def get_first_filter
|
6
|
+
VCR.use_cassette('filter search') do
|
7
|
+
@first_filter = Access::Filter.search(per_page: 1).filters.first
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_filters_search
|
12
|
+
VCR.use_cassette('filter search') do
|
13
|
+
filters_response = Access::Filter.search(per_page: 1)
|
14
|
+
assert filters_response.success
|
15
|
+
first_filter = filters_response.filters.first
|
16
|
+
assert_kind_of Access::FilterResponse, filters_response
|
17
|
+
assert_kind_of Access::Link, filters_response.links
|
18
|
+
assert_kind_of Access::Info, filters_response.info
|
19
|
+
assert_kind_of Array, filters_response.filters
|
20
|
+
assert_kind_of Access::Filter, first_filter
|
21
|
+
assert first_filter.json_filter
|
22
|
+
assert first_filter.hash_filter
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_filters_find
|
27
|
+
get_first_filter
|
28
|
+
VCR.use_cassette('filter find') do
|
29
|
+
filters_response = Access::Filter.find(@first_filter.filter_id)
|
30
|
+
assert filters_response.success
|
31
|
+
first_filter = filters_response.filters.first
|
32
|
+
assert_kind_of Access::FilterResponse, filters_response
|
33
|
+
assert_kind_of Array, filters_response.filters
|
34
|
+
assert_kind_of Access::Filter, first_filter
|
35
|
+
assert first_filter.json_filter
|
36
|
+
assert first_filter.hash_filter
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|