oi-api-ruby 0.1.1
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 +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,48 @@
|
|
1
|
+
require 'cgi'
|
2
|
+
require 'securerandom'
|
3
|
+
require 'advertisers_factory'
|
4
|
+
require 'cards_factory'
|
5
|
+
require 'charges_factory'
|
6
|
+
require 'subscriptions_factory'
|
7
|
+
require 'balances_factory'
|
8
|
+
require 'offers_factory'
|
9
|
+
require 'data_transfers_factory'
|
10
|
+
require 'auto_responders_factory'
|
11
|
+
require 'reports_factory'
|
12
|
+
|
13
|
+
class Factory
|
14
|
+
|
15
|
+
extend AdvertisersFactory
|
16
|
+
extend CardsFactory
|
17
|
+
extend ChargesFactory
|
18
|
+
extend SubscriptionsFactory
|
19
|
+
extend BalancesFactory
|
20
|
+
extend OffersFactory
|
21
|
+
extend DataTransfersFactory
|
22
|
+
extend AutoRespondersFactory
|
23
|
+
extend ReportsFactory
|
24
|
+
|
25
|
+
class << self
|
26
|
+
|
27
|
+
def test_oi_username
|
28
|
+
ENV['TEST_OI_USERNAME']
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_oi_password
|
32
|
+
ENV['TEST_OI_PASSWORD']
|
33
|
+
end
|
34
|
+
|
35
|
+
def api_client
|
36
|
+
@api_client ||= OiApi.new(
|
37
|
+
username: test_oi_username,
|
38
|
+
password: test_oi_password
|
39
|
+
)
|
40
|
+
end
|
41
|
+
|
42
|
+
def random_string
|
43
|
+
SecureRandom.hex
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module OffersFactory
|
2
|
+
|
3
|
+
def valid_offer_params(params = {})
|
4
|
+
advertiser_id = if params.has_key?(:advertiser_id)
|
5
|
+
params.delete(:advertiser_id)
|
6
|
+
else
|
7
|
+
create_advertiser['id']
|
8
|
+
end
|
9
|
+
|
10
|
+
_prms = {
|
11
|
+
advertiser_id: advertiser_id,
|
12
|
+
name: "Special Product #{random_string}",
|
13
|
+
category_id: 1010,
|
14
|
+
status_id: 9,
|
15
|
+
headline: "Buy our product today #{random_string}",
|
16
|
+
body: "Try for FREE for a limited time only. This is your one-and-only chance! #{random_string}",
|
17
|
+
cpl_price: 1.0,
|
18
|
+
global_cap: 1000,
|
19
|
+
monthly_cap: 300,
|
20
|
+
daily_cap: 10,
|
21
|
+
image1: 'http://www.opt-intelligence.com/images/cats120.png',
|
22
|
+
image2: 'http://www.opt-intelligence.com/images/cats88.png',
|
23
|
+
data_points: ['EM', 'FN'],
|
24
|
+
targeting: {
|
25
|
+
min_age: 18,
|
26
|
+
max_age: 45,
|
27
|
+
zip: {
|
28
|
+
include: true,
|
29
|
+
zip_codes: ['14226','10009','10023','11211']
|
30
|
+
},
|
31
|
+
gender: 'm',
|
32
|
+
country: {
|
33
|
+
include: true,
|
34
|
+
countries: ['USA']
|
35
|
+
},
|
36
|
+
third_party: { }
|
37
|
+
},
|
38
|
+
comment:'Hello there'
|
39
|
+
}.merge(params)
|
40
|
+
end
|
41
|
+
|
42
|
+
def create_offer(params = {})
|
43
|
+
_params = valid_offer_params.merge(params)
|
44
|
+
api_client.create_offer(_params)
|
45
|
+
end
|
46
|
+
|
47
|
+
def delete_all_offers
|
48
|
+
api_client.offers.each do |offer|
|
49
|
+
api_client.delete_offer(offer['id'])
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
data/spec_output.txt
ADDED
@@ -0,0 +1,341 @@
|
|
1
|
+
OiApi::Client::DataTransfers
|
2
|
+
#data_transfer
|
3
|
+
it should behave like GET resource
|
4
|
+
returns HTTParty::Response
|
5
|
+
returns 200 OK
|
6
|
+
returns the resource
|
7
|
+
when data_transfer_id not found
|
8
|
+
returns not found error message
|
9
|
+
returns not found error message (FAILED - 1)
|
10
|
+
returns 404 (FAILED - 2)
|
11
|
+
#update_data_transfer
|
12
|
+
it should behave like PUT resource
|
13
|
+
returns the correct message (FAILED - 3)
|
14
|
+
returns the correct status (FAILED - 4)
|
15
|
+
returns 200 OK
|
16
|
+
when data_transfer not found
|
17
|
+
returns not found error message (FAILED - 5)
|
18
|
+
returns 404 (FAILED - 6)
|
19
|
+
returns error status
|
20
|
+
bad request
|
21
|
+
returns an error message (FAILED - 7)
|
22
|
+
returns 400 bad request with invalid params
|
23
|
+
returns an error status
|
24
|
+
#delete_data_transfer
|
25
|
+
it should behave like DELETE resource
|
26
|
+
returns the correct status (FAILED - 8)
|
27
|
+
deletes a data transfer (FAILED - 9)
|
28
|
+
returns the correct message (FAILED - 10)
|
29
|
+
returns 200 OK
|
30
|
+
when data_transfer not found
|
31
|
+
returns not found error status (FAILED - 11)
|
32
|
+
returns not found error message (FAILED - 12)
|
33
|
+
returns 404 (FAILED - 13)
|
34
|
+
#data_transfers
|
35
|
+
it should behave like GET resources
|
36
|
+
returns HTTParty::Response
|
37
|
+
returns 200 OK
|
38
|
+
returns all resources
|
39
|
+
#create_data_transfer
|
40
|
+
it should behave like POST resource
|
41
|
+
returns a success status (FAILED - 14)
|
42
|
+
returns a success message (FAILED - 15)
|
43
|
+
returns 201 created (FAILED - 16)
|
44
|
+
bad request
|
45
|
+
returns an error message
|
46
|
+
returns 400 bad request with invalid params
|
47
|
+
returns an error status
|
48
|
+
|
49
|
+
OiApi::Client::Reports
|
50
|
+
#reports with query params
|
51
|
+
retrieves the last 60 days of data
|
52
|
+
#reports
|
53
|
+
returns a report summary
|
54
|
+
it should behave like GET resources
|
55
|
+
returns HTTParty::Response
|
56
|
+
returns 200 OK
|
57
|
+
returns all resources
|
58
|
+
|
59
|
+
OiApi
|
60
|
+
has a version
|
61
|
+
configuration
|
62
|
+
.password
|
63
|
+
defaults nil
|
64
|
+
.username
|
65
|
+
defaults nil
|
66
|
+
.user_agent
|
67
|
+
has a default
|
68
|
+
.content_type
|
69
|
+
has a default
|
70
|
+
.format
|
71
|
+
has a default
|
72
|
+
.api_endpoint
|
73
|
+
has a default
|
74
|
+
|
75
|
+
OiApi::Client::Advertisers
|
76
|
+
#advertiser
|
77
|
+
it should behave like GET resource
|
78
|
+
returns HTTParty::Response
|
79
|
+
returns 200 OK
|
80
|
+
returns the resource
|
81
|
+
when advertiser_id not found
|
82
|
+
returns not found error message
|
83
|
+
returns not found error message (FAILED - 17)
|
84
|
+
returns 404 (FAILED - 18)
|
85
|
+
#update_advertiser
|
86
|
+
it should behave like PUT resource
|
87
|
+
returns the correct message (FAILED - 19)
|
88
|
+
returns the correct status (FAILED - 20)
|
89
|
+
returns 200 OK
|
90
|
+
when advertiser not found
|
91
|
+
returns not found error message (FAILED - 21)
|
92
|
+
returns 404 (FAILED - 22)
|
93
|
+
returns error status
|
94
|
+
bad request
|
95
|
+
returns an error message
|
96
|
+
returns 400 bad request with invalid params
|
97
|
+
returns an error status
|
98
|
+
#delete_advertiser
|
99
|
+
it should behave like DELETE resource
|
100
|
+
returns the correct status
|
101
|
+
deletes a data transfer (FAILED - 23)
|
102
|
+
returns the correct message
|
103
|
+
returns 200 OK
|
104
|
+
when advertiser not found
|
105
|
+
returns not found error status
|
106
|
+
returns not found error message (FAILED - 24)
|
107
|
+
returns 404 (FAILED - 25)
|
108
|
+
#advertisers
|
109
|
+
it should behave like GET resources
|
110
|
+
returns HTTParty::Response
|
111
|
+
returns 200 OK
|
112
|
+
returns all resources
|
113
|
+
#create_advertiser
|
114
|
+
it should behave like POST resource
|
115
|
+
returns a success status (FAILED - 26)
|
116
|
+
returns a success message
|
117
|
+
returns 201 created
|
118
|
+
bad request
|
119
|
+
returns an error message
|
120
|
+
returns 400 bad request with invalid params
|
121
|
+
returns an error status
|
122
|
+
|
123
|
+
OiApi::Client::Offers
|
124
|
+
#offer
|
125
|
+
it should behave like GET resource
|
126
|
+
returns HTTParty::Response
|
127
|
+
returns 200 OK
|
128
|
+
returns the resource
|
129
|
+
when offer_id not found
|
130
|
+
returns not found error message (FAILED - 27)
|
131
|
+
returns not found error message (FAILED - 28)
|
132
|
+
returns 404 (FAILED - 29)
|
133
|
+
#update_offer
|
134
|
+
it should behave like PUT resource
|
135
|
+
returns the correct message
|
136
|
+
returns the correct status (FAILED - 30)
|
137
|
+
returns 200 OK
|
138
|
+
when offer not found
|
139
|
+
returns not found error message
|
140
|
+
returns 404
|
141
|
+
returns error status
|
142
|
+
bad request
|
143
|
+
returns an error message
|
144
|
+
returns 400 bad request with invalid params
|
145
|
+
returns an error status
|
146
|
+
#offers
|
147
|
+
it should behave like GET resources
|
148
|
+
returns HTTParty::Response
|
149
|
+
returns 200 OK
|
150
|
+
returns all resources
|
151
|
+
#create_offer
|
152
|
+
it should behave like POST resource
|
153
|
+
returns a success status
|
154
|
+
returns a success message
|
155
|
+
returns 201 created
|
156
|
+
bad request
|
157
|
+
returns an error message
|
158
|
+
returns 400 bad request with invalid params
|
159
|
+
returns an error status
|
160
|
+
|
161
|
+
Failures:
|
162
|
+
|
163
|
+
1) OiApi::Client::DataTransfers#data_transfer it should behave like GET resource when data_transfer_id not found returns not found error message
|
164
|
+
Failure/Error: expect(not_found_response['message']).to eql 'Record not found'
|
165
|
+
|
166
|
+
expected: "Record not found"
|
167
|
+
got: "No permission to view data transfer for offer."
|
168
|
+
|
169
|
+
2) OiApi::Client::DataTransfers#data_transfer it should behave like GET resource when data_transfer_id not found returns 404
|
170
|
+
Failure/Error: expect(not_found_response.code).to eql 404
|
171
|
+
|
172
|
+
expected: 404
|
173
|
+
got: 400
|
174
|
+
|
175
|
+
3) OiApi::Client::DataTransfers#update_data_transfer it should behave like PUT resource returns the correct message
|
176
|
+
Failure/Error: expect(response['message']).to eql("#{titleized_resource(resource_name)} successfully updated")
|
177
|
+
|
178
|
+
expected: "Data Transfer successfully updated"
|
179
|
+
got: nil
|
180
|
+
|
181
|
+
4) OiApi::Client::DataTransfers#update_data_transfer it should behave like PUT resource returns the correct status
|
182
|
+
Failure/Error: expect(response['status']).to eql('Request Successful')
|
183
|
+
|
184
|
+
expected: "Request Successful"
|
185
|
+
got: "Update Successful"
|
186
|
+
|
187
|
+
5) OiApi::Client::DataTransfers#update_data_transfer it should behave like PUT resource when data_transfer not found returns not found error message
|
188
|
+
Failure/Error: expect(not_found_response['message']).to eql "#{titleized_resource(resource_name)} not found"
|
189
|
+
|
190
|
+
expected: "Data Transfer not found"
|
191
|
+
got: "Data Transfer not found under this offer."
|
192
|
+
|
193
|
+
6) OiApi::Client::DataTransfers#update_data_transfer it should behave like PUT resource when data_transfer not found returns 404
|
194
|
+
Failure/Error: expect(not_found_response.code).to eql 404
|
195
|
+
|
196
|
+
expected: 404
|
197
|
+
got: 400
|
198
|
+
|
199
|
+
7) OiApi::Client::DataTransfers#update_data_transfer it should behave like PUT resource bad request returns an error message
|
200
|
+
Failure/Error: expect(bad_response['message']).to eql(bad_response_message)
|
201
|
+
|
202
|
+
expected: {"status_id"=>["Invalid Status Id"]}
|
203
|
+
got: {"status_id"=>["not a valid status"]}
|
204
|
+
|
205
|
+
8) OiApi::Client::DataTransfers#delete_data_transfer it should behave like DELETE resource returns the correct status
|
206
|
+
Failure/Error: expect(response['status']).to eql('Delete Successful')
|
207
|
+
|
208
|
+
expected: "Delete Successful"
|
209
|
+
got: "Request Successful"
|
210
|
+
|
211
|
+
9) OiApi::Client::DataTransfers#delete_data_transfer it should behave like DELETE resource deletes a data transfer
|
212
|
+
Failure/Error: expect(api.public_send(resource_name, resource_id).code).to eql 404
|
213
|
+
|
214
|
+
expected: 404
|
215
|
+
got: 400
|
216
|
+
|
217
|
+
10) OiApi::Client::DataTransfers#delete_data_transfer it should behave like DELETE resource returns the correct message
|
218
|
+
Failure/Error: expect(response['message']).to eql("#{titleized_resource(resource_name)} Succesfully deleted")
|
219
|
+
|
220
|
+
expected: "Data Transfer Succesfully deleted"
|
221
|
+
got: "DataTransfer Succesfully Deleted"
|
222
|
+
|
223
|
+
11) OiApi::Client::DataTransfers#delete_data_transfer it should behave like DELETE resource when data_transfer not found returns not found error status
|
224
|
+
Failure/Error: expect(not_found_response['status']).to eql 'Request Failed'
|
225
|
+
|
226
|
+
expected: "Request Failed"
|
227
|
+
got: "Delete Failed"
|
228
|
+
|
229
|
+
12) OiApi::Client::DataTransfers#delete_data_transfer it should behave like DELETE resource when data_transfer not found returns not found error message
|
230
|
+
Failure/Error: expect(not_found_response['message']).to eql 'Record not found'
|
231
|
+
|
232
|
+
expected: "Record not found"
|
233
|
+
got: "No permission to update data transfer for offer."
|
234
|
+
|
235
|
+
13) OiApi::Client::DataTransfers#delete_data_transfer it should behave like DELETE resource when data_transfer not found returns 404
|
236
|
+
Failure/Error: expect(not_found_response.code).to eql 404
|
237
|
+
|
238
|
+
expected: 404
|
239
|
+
got: 400
|
240
|
+
|
241
|
+
14) OiApi::Client::DataTransfers#create_data_transfer it should behave like POST resource returns a success status
|
242
|
+
Failure/Error: expect(response['status']).to eql('Request Successful')
|
243
|
+
|
244
|
+
expected: "Request Successful"
|
245
|
+
got: "Create Successful"
|
246
|
+
|
247
|
+
15) OiApi::Client::DataTransfers#create_data_transfer it should behave like POST resource returns a success message
|
248
|
+
Failure/Error: expect(response['message']).to eql("#{titleized_resource(resource_name)} successfully created")
|
249
|
+
|
250
|
+
expected: "Data Transfer successfully created"
|
251
|
+
got: nil
|
252
|
+
|
253
|
+
16) OiApi::Client::DataTransfers#create_data_transfer it should behave like POST resource returns 201 created
|
254
|
+
Failure/Error: expect(response.code).to eql 201
|
255
|
+
|
256
|
+
expected: 201
|
257
|
+
got: 200
|
258
|
+
|
259
|
+
17) OiApi::Client::Advertisers#advertiser it should behave like GET resource when advertiser_id not found returns not found error message
|
260
|
+
Failure/Error: expect(not_found_response['message']).to eql 'Record not found'
|
261
|
+
|
262
|
+
expected: "Record not found"
|
263
|
+
got: "No permission to view advertiser."
|
264
|
+
|
265
|
+
18) OiApi::Client::Advertisers#advertiser it should behave like GET resource when advertiser_id not found returns 404
|
266
|
+
Failure/Error: expect(not_found_response.code).to eql 404
|
267
|
+
|
268
|
+
expected: 404
|
269
|
+
got: 400
|
270
|
+
|
271
|
+
19) OiApi::Client::Advertisers#update_advertiser it should behave like PUT resource returns the correct message
|
272
|
+
Failure/Error: expect(response['message']).to eql("#{titleized_resource(resource_name)} successfully updated")
|
273
|
+
|
274
|
+
expected: "Advertiser successfully updated"
|
275
|
+
got: nil
|
276
|
+
|
277
|
+
20) OiApi::Client::Advertisers#update_advertiser it should behave like PUT resource returns the correct status
|
278
|
+
Failure/Error: expect(response['status']).to eql('Request Successful')
|
279
|
+
|
280
|
+
expected: "Request Successful"
|
281
|
+
got: "Update Successful"
|
282
|
+
|
283
|
+
21) OiApi::Client::Advertisers#update_advertiser it should behave like PUT resource when advertiser not found returns not found error message
|
284
|
+
Failure/Error: expect(not_found_response['message']).to eql "#{titleized_resource(resource_name)} not found"
|
285
|
+
|
286
|
+
expected: "Advertiser not found"
|
287
|
+
got: "No permission to update advertiser."
|
288
|
+
|
289
|
+
22) OiApi::Client::Advertisers#update_advertiser it should behave like PUT resource when advertiser not found returns 404
|
290
|
+
Failure/Error: expect(not_found_response.code).to eql 404
|
291
|
+
|
292
|
+
expected: 404
|
293
|
+
got: 400
|
294
|
+
|
295
|
+
23) OiApi::Client::Advertisers#delete_advertiser it should behave like DELETE resource deletes a data transfer
|
296
|
+
Failure/Error: expect(api.public_send(resource_name, resource_id).code).to eql 404
|
297
|
+
|
298
|
+
expected: 404
|
299
|
+
got: 400
|
300
|
+
|
301
|
+
24) OiApi::Client::Advertisers#delete_advertiser it should behave like DELETE resource when advertiser not found returns not found error message
|
302
|
+
Failure/Error: expect(not_found_response['message']).to eql 'Record not found'
|
303
|
+
|
304
|
+
expected: "Record not found"
|
305
|
+
got: "Operation not allowed"
|
306
|
+
|
307
|
+
25) OiApi::Client::Advertisers#delete_advertiser it should behave like DELETE resource when advertiser not found returns 404
|
308
|
+
Failure/Error: expect(not_found_response.code).to eql 404
|
309
|
+
|
310
|
+
expected: 404
|
311
|
+
got: 403
|
312
|
+
|
313
|
+
26) OiApi::Client::Advertisers#create_advertiser it should behave like POST resource returns a success status
|
314
|
+
Failure/Error: expect(response['status']).to eql('Request Successful')
|
315
|
+
|
316
|
+
expected: "Request Successful"
|
317
|
+
got: "Create Successful"
|
318
|
+
|
319
|
+
27) OiApi::Client::Offers#offer it should behave like GET resource when offer_id not found returns not found error message
|
320
|
+
Failure/Error: expect(not_found_response['status']).to eql 'Retrieve Failed'
|
321
|
+
|
322
|
+
expected: "Retrieve Failed"
|
323
|
+
got: "Permission Denied"
|
324
|
+
|
325
|
+
28) OiApi::Client::Offers#offer it should behave like GET resource when offer_id not found returns not found error message
|
326
|
+
Failure/Error: expect(not_found_response['message']).to eql 'Record not found'
|
327
|
+
|
328
|
+
expected: "Record not found"
|
329
|
+
got: "You do not have permission to perform this action."
|
330
|
+
|
331
|
+
29) OiApi::Client::Offers#offer it should behave like GET resource when offer_id not found returns 404
|
332
|
+
Failure/Error: expect(not_found_response.code).to eql 404
|
333
|
+
|
334
|
+
expected: 404
|
335
|
+
got: 403
|
336
|
+
|
337
|
+
30) OiApi::Client::Offers#update_offer it should behave like PUT resource returns the correct status
|
338
|
+
Failure/Error: expect(response['status']).to eql('Request Successful')
|
339
|
+
|
340
|
+
expected: "Request Successful"
|
341
|
+
got: "Request Succesful"
|