oi-api-ruby 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.env.sample +2 -0
- data/.gitignore +3 -0
- data/.rspec +4 -0
- data/.ruby-version +1 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +35 -0
- data/Rakefile +9 -0
- data/api_issues.md +89 -0
- data/lib/oi_api.rb +12 -0
- data/lib/oi_api/client.rb +98 -0
- data/lib/oi_api/client/advertisers.rb +31 -0
- data/lib/oi_api/client/auto_responders.rb +35 -0
- data/lib/oi_api/client/balances.rb +15 -0
- data/lib/oi_api/client/cards.rb +33 -0
- data/lib/oi_api/client/charges.rb +15 -0
- data/lib/oi_api/client/data_transfers.rb +31 -0
- data/lib/oi_api/client/offers.rb +32 -0
- data/lib/oi_api/client/reports.rb +15 -0
- data/lib/oi_api/client/subscriptions.rb +23 -0
- data/lib/oi_api/configuration.rb +50 -0
- data/lib/oi_api/lookup_tables.rb +42 -0
- data/lib/oi_api/version.rb +3 -0
- data/oi-api-ruby.gemspec +31 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_advertiser/it_should_behave_like_GET_resource/returns_200_OK.yml +157 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_advertiser/it_should_behave_like_GET_resource/returns_HTTParty_Response.yml +157 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_advertiser/it_should_behave_like_GET_resource/returns_the_resource.yml +157 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_advertiser/it_should_behave_like_GET_resource/when_advertiser_id_not_found/returns_404.yml +77 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_advertiser/it_should_behave_like_GET_resource/when_advertiser_id_not_found/returns_not_found_error_message.yml +117 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_advertisers/it_should_behave_like_GET_resources/returns_200_OK.yml +157 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_advertisers/it_should_behave_like_GET_resources/returns_HTTParty_Response.yml +237 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_advertisers/it_should_behave_like_GET_resources/returns_all_resources.yml +237 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_create_advertiser/it_should_behave_like_POST_resource/bad_request/returns_400_bad_request_with_invalid_params.yml +117 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_create_advertiser/it_should_behave_like_POST_resource/bad_request/returns_an_error_message.yml +77 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_create_advertiser/it_should_behave_like_POST_resource/bad_request/returns_an_error_status.yml +77 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_create_advertiser/it_should_behave_like_POST_resource/returns_201_created.yml +118 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_create_advertiser/it_should_behave_like_POST_resource/returns_a_success_message.yml +78 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_create_advertiser/it_should_behave_like_POST_resource/returns_a_success_status.yml +118 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_delete_advertiser/it_should_behave_like_DELETE_resource/deletes_a_data_transfer.yml +153 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_delete_advertiser/it_should_behave_like_DELETE_resource/returns_200_OK.yml +116 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_delete_advertiser/it_should_behave_like_DELETE_resource/returns_the_correct_message.yml +196 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_delete_advertiser/it_should_behave_like_DELETE_resource/returns_the_correct_status.yml +116 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_delete_advertiser/it_should_behave_like_DELETE_resource/when_advertiser_not_found/returns_404.yml +77 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_delete_advertiser/it_should_behave_like_DELETE_resource/when_advertiser_not_found/returns_not_found_error_message.yml +77 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_delete_advertiser/it_should_behave_like_DELETE_resource/when_advertiser_not_found/returns_not_found_error_status.yml +77 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_reports/it_should_behave_like_GET_resources/returns_200_OK.yml +42 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_reports/it_should_behave_like_GET_resources/returns_HTTParty_Response.yml +42 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_reports/it_should_behave_like_GET_resources/returns_all_resources.yml +42 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_update_advertiser/it_should_behave_like_PUT_resource/bad_request/returns_400_bad_request_with_invalid_params.yml +116 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_update_advertiser/it_should_behave_like_PUT_resource/bad_request/returns_an_error_message.yml +156 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_update_advertiser/it_should_behave_like_PUT_resource/bad_request/returns_an_error_status.yml +156 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_update_advertiser/it_should_behave_like_PUT_resource/returns_200_OK.yml +155 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_update_advertiser/it_should_behave_like_PUT_resource/returns_the_correct_message.yml +155 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_update_advertiser/it_should_behave_like_PUT_resource/returns_the_correct_status.yml +195 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_update_advertiser/it_should_behave_like_PUT_resource/when_advertiser_not_found/returns_404.yml +117 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_update_advertiser/it_should_behave_like_PUT_resource/when_advertiser_not_found/returns_error_status.yml +77 -0
- data/spec/cassettes/OiApi_Client_Advertisers/_update_advertiser/it_should_behave_like_PUT_resource/when_advertiser_not_found/returns_not_found_error_message.yml +77 -0
- data/spec/cassettes/OiApi_Client_AutoResponders/_all_auto_responders/it_should_behave_like_GET_resources/returns_200_OK.yml +593 -0
- data/spec/cassettes/OiApi_Client_AutoResponders/_all_auto_responders/it_should_behave_like_GET_resources/returns_HTTParty_Response.yml +593 -0
- data/spec/cassettes/OiApi_Client_AutoResponders/_all_auto_responders/it_should_behave_like_GET_resources/returns_all_resources.yml +593 -0
- data/spec/cassettes/OiApi_Client_AutoResponders/_auto_responders/it_should_behave_like_GET_resources/returns_200_OK.yml +273 -0
- data/spec/cassettes/OiApi_Client_AutoResponders/_auto_responders/it_should_behave_like_GET_resources/returns_HTTParty_Response.yml +273 -0
- data/spec/cassettes/OiApi_Client_AutoResponders/_auto_responders/it_should_behave_like_GET_resources/returns_all_resources.yml +273 -0
- data/spec/cassettes/OiApi_Client_AutoResponders/_auto_responders_no_offer_id/it_should_behave_like_GET_resources/returns_200_OK.yml +593 -0
- data/spec/cassettes/OiApi_Client_AutoResponders/_auto_responders_no_offer_id/it_should_behave_like_GET_resources/returns_HTTParty_Response.yml +673 -0
- data/spec/cassettes/OiApi_Client_AutoResponders/_auto_responders_no_offer_id/it_should_behave_like_GET_resources/returns_all_resources.yml +516 -0
- data/spec/cassettes/OiApi_Client_AutoResponders/_auto_responders_with_offer_id/it_should_behave_like_GET_resources/returns_200_OK.yml +273 -0
- data/spec/cassettes/OiApi_Client_AutoResponders/_auto_responders_with_offer_id/it_should_behave_like_GET_resources/returns_HTTParty_Response.yml +354 -0
- data/spec/cassettes/OiApi_Client_AutoResponders/_auto_responders_with_offer_id/it_should_behave_like_GET_resources/returns_all_resources.yml +354 -0
- data/spec/cassettes/OiApi_Client_Balances/_balance/it_should_behave_like_GET_resources/returns_200_OK.yml +78 -0
- data/spec/cassettes/OiApi_Client_Balances/_balance/it_should_behave_like_GET_resources/returns_HTTParty_Response.yml +78 -0
- data/spec/cassettes/OiApi_Client_Balances/_balance/it_should_behave_like_GET_resources/returns_all_resources.yml +78 -0
- data/spec/cassettes/OiApi_Client_Balances/_balance/returns_a_balance.yml +78 -0
- data/spec/cassettes/OiApi_Client_Cards/_card/it_should_behave_like_GET_resource/returns_200_OK.yml +117 -0
- data/spec/cassettes/OiApi_Client_Cards/_card/it_should_behave_like_GET_resource/returns_HTTParty_Response.yml +117 -0
- data/spec/cassettes/OiApi_Client_Cards/_card/it_should_behave_like_GET_resource/returns_the_resource.yml +117 -0
- data/spec/cassettes/OiApi_Client_Cards/_card/it_should_behave_like_GET_resource/when_card_id_not_found/returns_404.yml +79 -0
- data/spec/cassettes/OiApi_Client_Cards/_card/it_should_behave_like_GET_resource/when_card_id_not_found/returns_not_found_error_message.yml +79 -0
- data/spec/cassettes/OiApi_Client_Cards/_create_card/it_should_behave_like_POST_resource/bad_request/returns_400_bad_request_with_invalid_params.yml +80 -0
- data/spec/cassettes/OiApi_Client_Cards/_create_card/it_should_behave_like_POST_resource/bad_request/returns_an_error_message.yml +80 -0
- data/spec/cassettes/OiApi_Client_Cards/_create_card/it_should_behave_like_POST_resource/bad_request/returns_an_error_status.yml +80 -0
- data/spec/cassettes/OiApi_Client_Cards/_create_card/it_should_behave_like_POST_resource/returns_201_created.yml +80 -0
- data/spec/cassettes/OiApi_Client_Cards/_create_card/it_should_behave_like_POST_resource/returns_a_success_message.yml +80 -0
- data/spec/cassettes/OiApi_Client_Cards/_create_card/it_should_behave_like_POST_resource/returns_a_success_status.yml +80 -0
- data/spec/cassettes/OiApi_Client_Cards/_update_card/it_should_behave_like_PUT_resource/bad_request/returns_400_bad_request_with_invalid_params.yml +117 -0
- data/spec/cassettes/OiApi_Client_Cards/_update_card/it_should_behave_like_PUT_resource/bad_request/returns_an_error_message.yml +117 -0
- data/spec/cassettes/OiApi_Client_Cards/_update_card/it_should_behave_like_PUT_resource/bad_request/returns_an_error_status.yml +117 -0
- data/spec/cassettes/OiApi_Client_Cards/_update_card/it_should_behave_like_PUT_resource/returns_200_OK.yml +117 -0
- data/spec/cassettes/OiApi_Client_Cards/_update_card/it_should_behave_like_PUT_resource/returns_the_correct_message.yml +117 -0
- data/spec/cassettes/OiApi_Client_Cards/_update_card/it_should_behave_like_PUT_resource/returns_the_correct_status.yml +117 -0
- data/spec/cassettes/OiApi_Client_Cards/_update_card/it_should_behave_like_PUT_resource/when_card_not_found/returns_404.yml +79 -0
- data/spec/cassettes/OiApi_Client_Cards/_update_card/it_should_behave_like_PUT_resource/when_card_not_found/returns_error_status.yml +79 -0
- data/spec/cassettes/OiApi_Client_Cards/_update_card/it_should_behave_like_PUT_resource/when_card_not_found/returns_not_found_error_message.yml +79 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_create_data_transfer/it_should_behave_like_POST_resource/bad_request/returns_400_bad_request_with_invalid_params.yml +352 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_create_data_transfer/it_should_behave_like_POST_resource/bad_request/returns_an_error_message.yml +352 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_create_data_transfer/it_should_behave_like_POST_resource/bad_request/returns_an_error_status.yml +352 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_create_data_transfer/it_should_behave_like_POST_resource/returns_201_created.yml +352 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_create_data_transfer/it_should_behave_like_POST_resource/returns_a_success_message.yml +272 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_create_data_transfer/it_should_behave_like_POST_resource/returns_a_success_status.yml +352 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_data_transfer/it_should_behave_like_GET_resource/returns_200_OK.yml +393 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_data_transfer/it_should_behave_like_GET_resource/returns_HTTParty_Response.yml +393 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_data_transfer/it_should_behave_like_GET_resource/returns_the_resource.yml +472 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_data_transfer/it_should_behave_like_GET_resource/when_data_transfer_id_not_found/returns_404.yml +115 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_data_transfer/it_should_behave_like_GET_resource/when_data_transfer_id_not_found/returns_not_found_error_message.yml +236 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_data_transfers/it_should_behave_like_GET_resources/returns_200_OK.yml +354 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_data_transfers/it_should_behave_like_GET_resources/returns_HTTParty_Response.yml +434 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_data_transfers/it_should_behave_like_GET_resources/returns_all_resources.yml +434 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_delete_data_transfer/it_should_behave_like_DELETE_resource/deletes_a_data_transfer.yml +428 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_delete_data_transfer/it_should_behave_like_DELETE_resource/returns_200_OK.yml +390 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_delete_data_transfer/it_should_behave_like_DELETE_resource/returns_the_correct_message.yml +310 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_delete_data_transfer/it_should_behave_like_DELETE_resource/returns_the_correct_status.yml +390 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_delete_data_transfer/it_should_behave_like_DELETE_resource/when_data_transfer_not_found/returns_404.yml +115 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_delete_data_transfer/it_should_behave_like_DELETE_resource/when_data_transfer_not_found/returns_not_found_error_message.yml +195 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_delete_data_transfer/it_should_behave_like_DELETE_resource/when_data_transfer_not_found/returns_not_found_error_status.yml +115 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_update_data_transfer/it_should_behave_like_PUT_resource/bad_request/returns_400_bad_request_with_invalid_params.yml +390 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_update_data_transfer/it_should_behave_like_PUT_resource/bad_request/returns_an_error_message.yml +390 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_update_data_transfer/it_should_behave_like_PUT_resource/bad_request/returns_an_error_status.yml +390 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_update_data_transfer/it_should_behave_like_PUT_resource/returns_200_OK.yml +389 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_update_data_transfer/it_should_behave_like_PUT_resource/returns_the_correct_message.yml +389 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_update_data_transfer/it_should_behave_like_PUT_resource/returns_the_correct_status.yml +349 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_update_data_transfer/it_should_behave_like_PUT_resource/when_data_transfer_not_found/returns_404.yml +274 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_update_data_transfer/it_should_behave_like_PUT_resource/when_data_transfer_not_found/returns_error_status.yml +234 -0
- data/spec/cassettes/OiApi_Client_DataTransfers/_update_data_transfer/it_should_behave_like_PUT_resource/when_data_transfer_not_found/returns_not_found_error_message.yml +234 -0
- data/spec/cassettes/OiApi_Client_Offers/_create_offer/it_should_behave_like_POST_resource/bad_request/returns_400_bad_request_with_invalid_params.yml +195 -0
- data/spec/cassettes/OiApi_Client_Offers/_create_offer/it_should_behave_like_POST_resource/bad_request/returns_an_error_message.yml +195 -0
- data/spec/cassettes/OiApi_Client_Offers/_create_offer/it_should_behave_like_POST_resource/bad_request/returns_an_error_status.yml +195 -0
- data/spec/cassettes/OiApi_Client_Offers/_create_offer/it_should_behave_like_POST_resource/returns_201_created.yml +196 -0
- data/spec/cassettes/OiApi_Client_Offers/_create_offer/it_should_behave_like_POST_resource/returns_a_success_message.yml +156 -0
- data/spec/cassettes/OiApi_Client_Offers/_create_offer/it_should_behave_like_POST_resource/returns_a_success_status.yml +196 -0
- data/spec/cassettes/OiApi_Client_Offers/_offer/it_should_behave_like_GET_resource/returns_200_OK.yml +246 -0
- data/spec/cassettes/OiApi_Client_Offers/_offer/it_should_behave_like_GET_resource/returns_HTTParty_Response.yml +246 -0
- data/spec/cassettes/OiApi_Client_Offers/_offer/it_should_behave_like_GET_resource/returns_the_resource.yml +284 -0
- data/spec/cassettes/OiApi_Client_Offers/_offer/it_should_behave_like_GET_resource/when_offer_id_not_found/returns_404.yml +115 -0
- data/spec/cassettes/OiApi_Client_Offers/_offer/it_should_behave_like_GET_resource/when_offer_id_not_found/returns_not_found_error_message.yml +195 -0
- data/spec/cassettes/OiApi_Client_Offers/_offers/it_should_behave_like_GET_resources/returns_200_OK.yml +416 -0
- data/spec/cassettes/OiApi_Client_Offers/_offers/it_should_behave_like_GET_resources/returns_HTTParty_Response.yml +457 -0
- data/spec/cassettes/OiApi_Client_Offers/_offers/it_should_behave_like_GET_resources/returns_all_resources.yml +457 -0
- data/spec/cassettes/OiApi_Client_Offers/_update_offer/it_should_behave_like_PUT_resource/bad_request/returns_400_bad_request_with_invalid_params.yml +194 -0
- data/spec/cassettes/OiApi_Client_Offers/_update_offer/it_should_behave_like_PUT_resource/bad_request/returns_an_error_message.yml +234 -0
- data/spec/cassettes/OiApi_Client_Offers/_update_offer/it_should_behave_like_PUT_resource/bad_request/returns_an_error_status.yml +234 -0
- data/spec/cassettes/OiApi_Client_Offers/_update_offer/it_should_behave_like_PUT_resource/returns_200_OK.yml +234 -0
- data/spec/cassettes/OiApi_Client_Offers/_update_offer/it_should_behave_like_PUT_resource/returns_the_correct_message.yml +234 -0
- data/spec/cassettes/OiApi_Client_Offers/_update_offer/it_should_behave_like_PUT_resource/returns_the_correct_status.yml +315 -0
- data/spec/cassettes/OiApi_Client_Offers/_update_offer/it_should_behave_like_PUT_resource/when_offer_not_found/returns_404.yml +154 -0
- data/spec/cassettes/OiApi_Client_Offers/_update_offer/it_should_behave_like_PUT_resource/when_offer_not_found/returns_error_status.yml +114 -0
- data/spec/cassettes/OiApi_Client_Offers/_update_offer/it_should_behave_like_PUT_resource/when_offer_not_found/returns_not_found_error_message.yml +114 -0
- data/spec/cassettes/OiApi_Client_Reports/_reports/it_should_behave_like_GET_resources/returns_200_OK.yml +46 -0
- data/spec/cassettes/OiApi_Client_Reports/_reports/it_should_behave_like_GET_resources/returns_HTTParty_Response.yml +46 -0
- data/spec/cassettes/OiApi_Client_Reports/_reports/it_should_behave_like_GET_resources/returns_all_resources.yml +46 -0
- data/spec/cassettes/OiApi_Client_Reports/_reports/returns_a_report_summary.yml +46 -0
- data/spec/cassettes/OiApi_Client_Reports/_reports_with_query_params/retrieves_the_last_60_days_of_data.yml +42 -0
- data/spec/oi_api/client/advertisers_spec.rb +86 -0
- data/spec/oi_api/client/auto_responders_spec.rb +55 -0
- data/spec/oi_api/client/balances_spec.rb +22 -0
- data/spec/oi_api/client/cards_spec.rb +60 -0
- data/spec/oi_api/client/charges_spec.rb +9 -0
- data/spec/oi_api/client/data_transfers_spec.rb +95 -0
- data/spec/oi_api/client/offers_spec.rb +84 -0
- data/spec/oi_api/client/reports_spec.rb +31 -0
- data/spec/oi_api/client/subscriptions_spec.rb +11 -0
- data/spec/oi_api_spec.rb +49 -0
- data/spec/shared_examples_for_delete_resource.rb +37 -0
- data/spec/shared_examples_for_get_resource.rb +33 -0
- data/spec/shared_examples_for_get_resources.rb +15 -0
- data/spec/shared_examples_for_post_resource.rb +31 -0
- data/spec/shared_examples_for_put_resource.rb +46 -0
- data/spec/spec_helper.rb +60 -0
- data/spec/support/advertisers_factory.rb +22 -0
- data/spec/support/auto_responders_factory.rb +27 -0
- data/spec/support/balances_factory.rb +12 -0
- data/spec/support/cards_factory.rb +34 -0
- data/spec/support/charges_factory.rb +16 -0
- data/spec/support/data_transfers_factory.rb +34 -0
- data/spec/support/factory.rb +48 -0
- data/spec/support/offers_factory.rb +53 -0
- data/spec/support/reports_factory.rb +12 -0
- data/spec/support/subscriptions_factory.rb +16 -0
- data/spec_output.txt +341 -0
- metadata +487 -0
@@ -0,0 +1,86 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'shared_examples_for_get_resource.rb'
|
4
|
+
require 'shared_examples_for_get_resources.rb'
|
5
|
+
require 'shared_examples_for_post_resource.rb'
|
6
|
+
require 'shared_examples_for_put_resource.rb'
|
7
|
+
require 'shared_examples_for_delete_resource.rb'
|
8
|
+
|
9
|
+
RSpec.describe OiApi::Client::Advertisers do
|
10
|
+
|
11
|
+
before do
|
12
|
+
Factory.delete_all_advertisers
|
13
|
+
end
|
14
|
+
|
15
|
+
let(:api) { Factory.api_client }
|
16
|
+
|
17
|
+
let(:advertiser) { Factory.create_advertiser }
|
18
|
+
|
19
|
+
context '#advertisers', :vcr do
|
20
|
+
|
21
|
+
before do
|
22
|
+
Factory.create_advertiser
|
23
|
+
Factory.create_advertiser
|
24
|
+
end
|
25
|
+
|
26
|
+
let(:response) { api.advertisers }
|
27
|
+
|
28
|
+
it_should_behave_like 'GET resources', :advertiser, { expected_num_resources: 2 }
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
context '#advertiser', :vcr do
|
33
|
+
|
34
|
+
let(:response) { api.advertiser(advertiser['id']) }
|
35
|
+
|
36
|
+
let(:not_found_response) { api.advertiser(99999999999999) }
|
37
|
+
|
38
|
+
it_should_behave_like 'GET resource', :advertiser
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
context '#create_advertiser', :vcr do
|
43
|
+
|
44
|
+
let(:response) { api.create_advertiser(Factory.valid_advertiser_params) }
|
45
|
+
|
46
|
+
let(:bad_response) {
|
47
|
+
invalid_params = Factory.valid_advertiser_params
|
48
|
+
invalid_params.delete(:name)
|
49
|
+
api.create_advertiser(invalid_params)
|
50
|
+
}
|
51
|
+
|
52
|
+
let(:bad_response_message) {{ 'name' => ['This field is required.'] }}
|
53
|
+
let(:bad_response_status) { 'Create Failed' }
|
54
|
+
|
55
|
+
it_should_behave_like 'POST resource', :advertiser
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
context '#update_advertiser', :vcr do
|
60
|
+
|
61
|
+
let(:update_params) {{ status_id: 2 }}
|
62
|
+
|
63
|
+
let(:response) { api.update_advertiser(advertiser['id'], update_params) }
|
64
|
+
|
65
|
+
let(:bad_response) { api.update_advertiser(advertiser['id'], { status_id: 999 }) }
|
66
|
+
|
67
|
+
let(:bad_response_message) {{ 'status_id' => ['Invalid Status Id'] }}
|
68
|
+
let(:bad_response_status) { 'Update Failed' }
|
69
|
+
|
70
|
+
let(:not_found_response) { api.update_advertiser(99999999999999, update_params) }
|
71
|
+
|
72
|
+
it_should_behave_like 'PUT resource', :advertiser
|
73
|
+
|
74
|
+
end
|
75
|
+
|
76
|
+
context '#delete_advertiser', :vcr do
|
77
|
+
|
78
|
+
let(:response) { api.delete_advertiser(advertiser['id']) }
|
79
|
+
|
80
|
+
let(:not_found_response) { api.delete_advertiser(99999999999999) }
|
81
|
+
|
82
|
+
it_should_behave_like 'DELETE resource', :advertiser
|
83
|
+
|
84
|
+
end
|
85
|
+
|
86
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'shared_examples_for_get_resource.rb'
|
4
|
+
require 'shared_examples_for_get_resources.rb'
|
5
|
+
require 'shared_examples_for_post_resource.rb'
|
6
|
+
require 'shared_examples_for_put_resource.rb'
|
7
|
+
require 'shared_examples_for_delete_resource.rb'
|
8
|
+
|
9
|
+
RSpec.describe OiApi::Client::AutoResponders do
|
10
|
+
|
11
|
+
before do
|
12
|
+
Factory.delete_all_advertisers
|
13
|
+
Factory.delete_all_offers
|
14
|
+
Factory.delete_all_auto_responders
|
15
|
+
end
|
16
|
+
|
17
|
+
let(:api) { Factory.api_client }
|
18
|
+
|
19
|
+
let(:offer) { Factory.create_offer }
|
20
|
+
|
21
|
+
context '#all_auto_responders', :vcr do
|
22
|
+
|
23
|
+
before do
|
24
|
+
Factory.create_auto_responder
|
25
|
+
Factory.create_auto_responder
|
26
|
+
Factory.create_auto_responder
|
27
|
+
end
|
28
|
+
|
29
|
+
let(:response) { api.all_auto_responders }
|
30
|
+
|
31
|
+
it_should_behave_like 'GET resources', :auto_responder, { expected_num_resources: 3 }
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
context '#auto_responders', :vcr do
|
36
|
+
|
37
|
+
before do
|
38
|
+
Factory.create_auto_responder(offer_id: offer['id'])
|
39
|
+
end
|
40
|
+
|
41
|
+
let(:response) { api.auto_responders(offer['id']) }
|
42
|
+
|
43
|
+
it_should_behave_like 'GET resources', :auto_responder, { expected_num_resources: 1 }
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
context '#create_auto_responder', :vcr do
|
48
|
+
# TODO
|
49
|
+
end
|
50
|
+
|
51
|
+
context '#update_auto_responder', :vcr do
|
52
|
+
# TODO
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'shared_examples_for_get_resource.rb'
|
4
|
+
|
5
|
+
RSpec.describe OiApi::Client::Balances do
|
6
|
+
|
7
|
+
let(:api) { Factory.api_client }
|
8
|
+
let(:advertiser) { Factory.create_advertiser }
|
9
|
+
|
10
|
+
context '#balance', :vcr do
|
11
|
+
|
12
|
+
let(:response) { api.balance(advertiser['id']) }
|
13
|
+
|
14
|
+
it_should_behave_like 'GET resources', :balance, { expected_num_resources: 1 }
|
15
|
+
|
16
|
+
it 'returns a balance' do
|
17
|
+
expect(response['balance']).to eql 0.0
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'shared_examples_for_get_resource.rb'
|
4
|
+
require 'shared_examples_for_post_resource.rb'
|
5
|
+
require 'shared_examples_for_put_resource.rb'
|
6
|
+
|
7
|
+
|
8
|
+
RSpec.describe OiApi::Client::Cards do
|
9
|
+
|
10
|
+
let(:api) { Factory.api_client }
|
11
|
+
let(:advertiser) { Factory.create_advertiser }
|
12
|
+
let(:card) { Factory.create_card(advertiser_id: advertiser['id']) }
|
13
|
+
|
14
|
+
context '#card', :vcr do
|
15
|
+
|
16
|
+
let(:response) { api.card(advertiser['id'], card['id']) }
|
17
|
+
|
18
|
+
let(:not_found_response) { api.card(advertiser['id'], 99999999999999) }
|
19
|
+
|
20
|
+
it_should_behave_like 'GET resource', :card
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
context '#create_card', :vcr do
|
25
|
+
|
26
|
+
let(:response) {
|
27
|
+
api.create_card(advertiser['id'], Factory.valid_card_params)
|
28
|
+
}
|
29
|
+
|
30
|
+
let(:bad_response) {
|
31
|
+
invalid_params = Factory.valid_card_params
|
32
|
+
invalid_params.delete(:number)
|
33
|
+
api.create_card(advertiser['id'], invalid_params)
|
34
|
+
}
|
35
|
+
|
36
|
+
let(:bad_response_message) {{ 'number' => ['This field is required.'] }}
|
37
|
+
let(:bad_response_status) { 'Create Failed' }
|
38
|
+
|
39
|
+
it_should_behave_like 'POST resource', :card
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
context '#update_card', :vcr do
|
44
|
+
|
45
|
+
let(:update_params) {{ address_zip: 11211 }}
|
46
|
+
|
47
|
+
let(:response) { api.update_card(advertiser['id'], card['id'], update_params) }
|
48
|
+
|
49
|
+
let(:bad_response) { api.update_card(advertiser['id'], card['id'], { number: 999 }) }
|
50
|
+
|
51
|
+
let(:bad_response_message) {{ 'number' => ['Invalid Card Number'] }}
|
52
|
+
let(:bad_response_status) { 'Update Failed' }
|
53
|
+
|
54
|
+
let(:not_found_response) { api.update_card(advertiser['id'], 99999999999999, update_params) }
|
55
|
+
|
56
|
+
it_should_behave_like 'PUT resource', :card
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'shared_examples_for_get_resource.rb'
|
4
|
+
require 'shared_examples_for_get_resources.rb'
|
5
|
+
require 'shared_examples_for_post_resource.rb'
|
6
|
+
require 'shared_examples_for_put_resource.rb'
|
7
|
+
require 'shared_examples_for_delete_resource.rb'
|
8
|
+
|
9
|
+
RSpec.describe OiApi::Client::DataTransfers do
|
10
|
+
|
11
|
+
before do
|
12
|
+
Factory.delete_all_advertisers
|
13
|
+
Factory.delete_all_offers
|
14
|
+
end
|
15
|
+
|
16
|
+
let(:api) { Factory.api_client }
|
17
|
+
|
18
|
+
let(:offer) { Factory.create_offer }
|
19
|
+
|
20
|
+
let(:data_transfer) { Factory.create_data_transfer(offer_id: offer['id']) }
|
21
|
+
|
22
|
+
context '#data_transfers', :vcr do
|
23
|
+
|
24
|
+
before do
|
25
|
+
Factory.create_data_transfer
|
26
|
+
Factory.create_data_transfer
|
27
|
+
end
|
28
|
+
|
29
|
+
let(:response) { api.data_transfers }
|
30
|
+
|
31
|
+
it_should_behave_like 'GET resources', :data_transfer, { expected_num_resources: 2 }
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
context '#data_transfer', :vcr do
|
36
|
+
|
37
|
+
let(:response) { api.data_transfer(data_transfer['id']) }
|
38
|
+
|
39
|
+
let(:not_found_response) { api.data_transfer(99999999999999) }
|
40
|
+
|
41
|
+
it_should_behave_like 'GET resource', :data_transfer
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
context '#create_data_transfer', :vcr do
|
46
|
+
|
47
|
+
let(:response) {
|
48
|
+
api.create_data_transfer(offer['id'], Factory.valid_data_transfer_params)
|
49
|
+
}
|
50
|
+
|
51
|
+
let(:bad_response) {
|
52
|
+
invalid_params = Factory.valid_data_transfer_params
|
53
|
+
invalid_params.delete(:name)
|
54
|
+
api.create_data_transfer(offer['id'], invalid_params)
|
55
|
+
}
|
56
|
+
|
57
|
+
let(:bad_response_message) {{ 'name' => ['This field is required.'] }}
|
58
|
+
let(:bad_response_status) { 'Create Failed' }
|
59
|
+
|
60
|
+
it_should_behave_like 'POST resource', :data_transfer
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
context '#update_data_transfer', :vcr do
|
65
|
+
|
66
|
+
let(:response) {
|
67
|
+
api.update_data_transfer(offer['id'], data_transfer['id'], { status_id: 2 })
|
68
|
+
}
|
69
|
+
|
70
|
+
let(:bad_response) {
|
71
|
+
api.update_data_transfer(offer['id'], data_transfer['id'], { status_id: 10 })
|
72
|
+
}
|
73
|
+
let(:bad_response_message) {{ 'status_id' => ['Invalid Status Id'] }}
|
74
|
+
let(:bad_response_status) { 'Update Failed' }
|
75
|
+
|
76
|
+
|
77
|
+
let(:not_found_response) {
|
78
|
+
api.update_data_transfer(offer['id'], 99999999999999, status_id: 2)
|
79
|
+
}
|
80
|
+
|
81
|
+
it_should_behave_like 'PUT resource', :data_transfer
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
context '#delete_data_transfer', :vcr do
|
86
|
+
|
87
|
+
let(:response) { api.delete_data_transfer(data_transfer['id']) }
|
88
|
+
|
89
|
+
let(:not_found_response) { api.delete_data_transfer(99999999999999) }
|
90
|
+
|
91
|
+
it_should_behave_like 'DELETE resource', :data_transfer
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'shared_examples_for_get_resource.rb'
|
4
|
+
require 'shared_examples_for_get_resources.rb'
|
5
|
+
require 'shared_examples_for_post_resource.rb'
|
6
|
+
require 'shared_examples_for_put_resource.rb'
|
7
|
+
require 'shared_examples_for_delete_resource.rb'
|
8
|
+
|
9
|
+
RSpec.describe OiApi::Client::Offers do
|
10
|
+
|
11
|
+
before do
|
12
|
+
Factory.delete_all_advertisers
|
13
|
+
Factory.delete_all_offers
|
14
|
+
end
|
15
|
+
|
16
|
+
let(:api) { Factory.api_client }
|
17
|
+
|
18
|
+
let(:offer) { Factory.create_offer }
|
19
|
+
|
20
|
+
context '#offers', :vcr do
|
21
|
+
|
22
|
+
before do
|
23
|
+
adv = Factory.create_advertiser
|
24
|
+
Factory.create_offer(advertiser_id: adv['id'])
|
25
|
+
Factory.create_offer(advertiser_id: adv['id'])
|
26
|
+
end
|
27
|
+
|
28
|
+
let(:response) { api.offers }
|
29
|
+
|
30
|
+
it_should_behave_like 'GET resources', :offer, { expected_num_resources: 2 }
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
context '#offer', :vcr do
|
35
|
+
|
36
|
+
let(:response) { api.offer(offer['id']) }
|
37
|
+
|
38
|
+
let(:not_found_response) { api.offer(99999999999999) }
|
39
|
+
|
40
|
+
it_should_behave_like 'GET resource', :offer
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
context '#create_offer', :vcr do
|
45
|
+
|
46
|
+
let(:response) { api.create_offer(Factory.valid_offer_params) }
|
47
|
+
|
48
|
+
let(:bad_response) {
|
49
|
+
invalid_params = Factory.valid_offer_params
|
50
|
+
invalid_params.delete(:advertiser_id)
|
51
|
+
api.create_offer(invalid_params)
|
52
|
+
}
|
53
|
+
|
54
|
+
let(:bad_response_status) { 'Create Failed' }
|
55
|
+
let(:bad_response_message) { 'Field advertiser_id is required' }
|
56
|
+
|
57
|
+
it_should_behave_like 'POST resource', :offer
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
context '#update_offer', :vcr do
|
62
|
+
|
63
|
+
let(:update_params) {{
|
64
|
+
headline: 'Last chance to buy our product',
|
65
|
+
cpl_price: 2.0
|
66
|
+
}}
|
67
|
+
|
68
|
+
let(:response) { api.update_offer(offer['id'], update_params) }
|
69
|
+
|
70
|
+
let(:bad_response) { api.update_offer(offer['id'], { name: offer['name'] }) }
|
71
|
+
let(:bad_response_status) { 'Update Failed' }
|
72
|
+
let(:bad_response_message) {{ 'name' => ['This field cannot be blank.'] }}
|
73
|
+
|
74
|
+
let(:not_found_response) { api.update_offer(99999999999999, status_id: 2) }
|
75
|
+
|
76
|
+
it_should_behave_like 'PUT resource', :offer
|
77
|
+
|
78
|
+
end
|
79
|
+
|
80
|
+
# DELETE not available for offers?
|
81
|
+
#context '#delete_offer' do
|
82
|
+
#end
|
83
|
+
|
84
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'shared_examples_for_get_resources.rb'
|
4
|
+
|
5
|
+
RSpec.describe OiApi::Client::Reports do
|
6
|
+
|
7
|
+
let(:api) { Factory.api_client }
|
8
|
+
let(:advertiser) { Factory.create_advertiser }
|
9
|
+
|
10
|
+
context '#reports', :vcr do
|
11
|
+
|
12
|
+
let(:response) { api.reports }
|
13
|
+
|
14
|
+
it_should_behave_like 'GET resources', :report, { expected_num_resources: 2 }
|
15
|
+
|
16
|
+
it 'returns a report summary' do
|
17
|
+
expect(response['data'].keys).to eql ['today', 'yesterday', 'mtd']
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
context '#reports with query params', :vcr do
|
23
|
+
|
24
|
+
it 'retrieves the last 60 days of data' do
|
25
|
+
sixty_days_ago = (Time.now - 86400 * 60).strftime('%Y-%m-%d')
|
26
|
+
expect(api.reports(query: {start: sixty_days_ago})['data'].keys).to eql ['custom']
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|