oi-api-ruby 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (180) hide show
  1. checksums.yaml +7 -0
  2. data/.env.sample +2 -0
  3. data/.gitignore +3 -0
  4. data/.rspec +4 -0
  5. data/.ruby-version +1 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +35 -0
  9. data/Rakefile +9 -0
  10. data/api_issues.md +89 -0
  11. data/lib/oi_api.rb +12 -0
  12. data/lib/oi_api/client.rb +98 -0
  13. data/lib/oi_api/client/advertisers.rb +31 -0
  14. data/lib/oi_api/client/auto_responders.rb +35 -0
  15. data/lib/oi_api/client/balances.rb +15 -0
  16. data/lib/oi_api/client/cards.rb +33 -0
  17. data/lib/oi_api/client/charges.rb +15 -0
  18. data/lib/oi_api/client/data_transfers.rb +31 -0
  19. data/lib/oi_api/client/offers.rb +32 -0
  20. data/lib/oi_api/client/reports.rb +15 -0
  21. data/lib/oi_api/client/subscriptions.rb +23 -0
  22. data/lib/oi_api/configuration.rb +50 -0
  23. data/lib/oi_api/lookup_tables.rb +42 -0
  24. data/lib/oi_api/version.rb +3 -0
  25. data/oi-api-ruby.gemspec +31 -0
  26. data/spec/cassettes/OiApi_Client_Advertisers/_advertiser/it_should_behave_like_GET_resource/returns_200_OK.yml +157 -0
  27. data/spec/cassettes/OiApi_Client_Advertisers/_advertiser/it_should_behave_like_GET_resource/returns_HTTParty_Response.yml +157 -0
  28. data/spec/cassettes/OiApi_Client_Advertisers/_advertiser/it_should_behave_like_GET_resource/returns_the_resource.yml +157 -0
  29. data/spec/cassettes/OiApi_Client_Advertisers/_advertiser/it_should_behave_like_GET_resource/when_advertiser_id_not_found/returns_404.yml +77 -0
  30. 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
  31. data/spec/cassettes/OiApi_Client_Advertisers/_advertisers/it_should_behave_like_GET_resources/returns_200_OK.yml +157 -0
  32. data/spec/cassettes/OiApi_Client_Advertisers/_advertisers/it_should_behave_like_GET_resources/returns_HTTParty_Response.yml +237 -0
  33. data/spec/cassettes/OiApi_Client_Advertisers/_advertisers/it_should_behave_like_GET_resources/returns_all_resources.yml +237 -0
  34. 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
  35. data/spec/cassettes/OiApi_Client_Advertisers/_create_advertiser/it_should_behave_like_POST_resource/bad_request/returns_an_error_message.yml +77 -0
  36. data/spec/cassettes/OiApi_Client_Advertisers/_create_advertiser/it_should_behave_like_POST_resource/bad_request/returns_an_error_status.yml +77 -0
  37. data/spec/cassettes/OiApi_Client_Advertisers/_create_advertiser/it_should_behave_like_POST_resource/returns_201_created.yml +118 -0
  38. data/spec/cassettes/OiApi_Client_Advertisers/_create_advertiser/it_should_behave_like_POST_resource/returns_a_success_message.yml +78 -0
  39. data/spec/cassettes/OiApi_Client_Advertisers/_create_advertiser/it_should_behave_like_POST_resource/returns_a_success_status.yml +118 -0
  40. data/spec/cassettes/OiApi_Client_Advertisers/_delete_advertiser/it_should_behave_like_DELETE_resource/deletes_a_data_transfer.yml +153 -0
  41. data/spec/cassettes/OiApi_Client_Advertisers/_delete_advertiser/it_should_behave_like_DELETE_resource/returns_200_OK.yml +116 -0
  42. data/spec/cassettes/OiApi_Client_Advertisers/_delete_advertiser/it_should_behave_like_DELETE_resource/returns_the_correct_message.yml +196 -0
  43. data/spec/cassettes/OiApi_Client_Advertisers/_delete_advertiser/it_should_behave_like_DELETE_resource/returns_the_correct_status.yml +116 -0
  44. data/spec/cassettes/OiApi_Client_Advertisers/_delete_advertiser/it_should_behave_like_DELETE_resource/when_advertiser_not_found/returns_404.yml +77 -0
  45. 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
  46. 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
  47. data/spec/cassettes/OiApi_Client_Advertisers/_reports/it_should_behave_like_GET_resources/returns_200_OK.yml +42 -0
  48. data/spec/cassettes/OiApi_Client_Advertisers/_reports/it_should_behave_like_GET_resources/returns_HTTParty_Response.yml +42 -0
  49. data/spec/cassettes/OiApi_Client_Advertisers/_reports/it_should_behave_like_GET_resources/returns_all_resources.yml +42 -0
  50. 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
  51. data/spec/cassettes/OiApi_Client_Advertisers/_update_advertiser/it_should_behave_like_PUT_resource/bad_request/returns_an_error_message.yml +156 -0
  52. data/spec/cassettes/OiApi_Client_Advertisers/_update_advertiser/it_should_behave_like_PUT_resource/bad_request/returns_an_error_status.yml +156 -0
  53. data/spec/cassettes/OiApi_Client_Advertisers/_update_advertiser/it_should_behave_like_PUT_resource/returns_200_OK.yml +155 -0
  54. data/spec/cassettes/OiApi_Client_Advertisers/_update_advertiser/it_should_behave_like_PUT_resource/returns_the_correct_message.yml +155 -0
  55. data/spec/cassettes/OiApi_Client_Advertisers/_update_advertiser/it_should_behave_like_PUT_resource/returns_the_correct_status.yml +195 -0
  56. data/spec/cassettes/OiApi_Client_Advertisers/_update_advertiser/it_should_behave_like_PUT_resource/when_advertiser_not_found/returns_404.yml +117 -0
  57. data/spec/cassettes/OiApi_Client_Advertisers/_update_advertiser/it_should_behave_like_PUT_resource/when_advertiser_not_found/returns_error_status.yml +77 -0
  58. 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
  59. data/spec/cassettes/OiApi_Client_AutoResponders/_all_auto_responders/it_should_behave_like_GET_resources/returns_200_OK.yml +593 -0
  60. data/spec/cassettes/OiApi_Client_AutoResponders/_all_auto_responders/it_should_behave_like_GET_resources/returns_HTTParty_Response.yml +593 -0
  61. data/spec/cassettes/OiApi_Client_AutoResponders/_all_auto_responders/it_should_behave_like_GET_resources/returns_all_resources.yml +593 -0
  62. data/spec/cassettes/OiApi_Client_AutoResponders/_auto_responders/it_should_behave_like_GET_resources/returns_200_OK.yml +273 -0
  63. data/spec/cassettes/OiApi_Client_AutoResponders/_auto_responders/it_should_behave_like_GET_resources/returns_HTTParty_Response.yml +273 -0
  64. data/spec/cassettes/OiApi_Client_AutoResponders/_auto_responders/it_should_behave_like_GET_resources/returns_all_resources.yml +273 -0
  65. data/spec/cassettes/OiApi_Client_AutoResponders/_auto_responders_no_offer_id/it_should_behave_like_GET_resources/returns_200_OK.yml +593 -0
  66. data/spec/cassettes/OiApi_Client_AutoResponders/_auto_responders_no_offer_id/it_should_behave_like_GET_resources/returns_HTTParty_Response.yml +673 -0
  67. data/spec/cassettes/OiApi_Client_AutoResponders/_auto_responders_no_offer_id/it_should_behave_like_GET_resources/returns_all_resources.yml +516 -0
  68. data/spec/cassettes/OiApi_Client_AutoResponders/_auto_responders_with_offer_id/it_should_behave_like_GET_resources/returns_200_OK.yml +273 -0
  69. data/spec/cassettes/OiApi_Client_AutoResponders/_auto_responders_with_offer_id/it_should_behave_like_GET_resources/returns_HTTParty_Response.yml +354 -0
  70. data/spec/cassettes/OiApi_Client_AutoResponders/_auto_responders_with_offer_id/it_should_behave_like_GET_resources/returns_all_resources.yml +354 -0
  71. data/spec/cassettes/OiApi_Client_Balances/_balance/it_should_behave_like_GET_resources/returns_200_OK.yml +78 -0
  72. data/spec/cassettes/OiApi_Client_Balances/_balance/it_should_behave_like_GET_resources/returns_HTTParty_Response.yml +78 -0
  73. data/spec/cassettes/OiApi_Client_Balances/_balance/it_should_behave_like_GET_resources/returns_all_resources.yml +78 -0
  74. data/spec/cassettes/OiApi_Client_Balances/_balance/returns_a_balance.yml +78 -0
  75. data/spec/cassettes/OiApi_Client_Cards/_card/it_should_behave_like_GET_resource/returns_200_OK.yml +117 -0
  76. data/spec/cassettes/OiApi_Client_Cards/_card/it_should_behave_like_GET_resource/returns_HTTParty_Response.yml +117 -0
  77. data/spec/cassettes/OiApi_Client_Cards/_card/it_should_behave_like_GET_resource/returns_the_resource.yml +117 -0
  78. data/spec/cassettes/OiApi_Client_Cards/_card/it_should_behave_like_GET_resource/when_card_id_not_found/returns_404.yml +79 -0
  79. 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
  80. 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
  81. data/spec/cassettes/OiApi_Client_Cards/_create_card/it_should_behave_like_POST_resource/bad_request/returns_an_error_message.yml +80 -0
  82. data/spec/cassettes/OiApi_Client_Cards/_create_card/it_should_behave_like_POST_resource/bad_request/returns_an_error_status.yml +80 -0
  83. data/spec/cassettes/OiApi_Client_Cards/_create_card/it_should_behave_like_POST_resource/returns_201_created.yml +80 -0
  84. data/spec/cassettes/OiApi_Client_Cards/_create_card/it_should_behave_like_POST_resource/returns_a_success_message.yml +80 -0
  85. data/spec/cassettes/OiApi_Client_Cards/_create_card/it_should_behave_like_POST_resource/returns_a_success_status.yml +80 -0
  86. 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
  87. data/spec/cassettes/OiApi_Client_Cards/_update_card/it_should_behave_like_PUT_resource/bad_request/returns_an_error_message.yml +117 -0
  88. data/spec/cassettes/OiApi_Client_Cards/_update_card/it_should_behave_like_PUT_resource/bad_request/returns_an_error_status.yml +117 -0
  89. data/spec/cassettes/OiApi_Client_Cards/_update_card/it_should_behave_like_PUT_resource/returns_200_OK.yml +117 -0
  90. data/spec/cassettes/OiApi_Client_Cards/_update_card/it_should_behave_like_PUT_resource/returns_the_correct_message.yml +117 -0
  91. data/spec/cassettes/OiApi_Client_Cards/_update_card/it_should_behave_like_PUT_resource/returns_the_correct_status.yml +117 -0
  92. data/spec/cassettes/OiApi_Client_Cards/_update_card/it_should_behave_like_PUT_resource/when_card_not_found/returns_404.yml +79 -0
  93. data/spec/cassettes/OiApi_Client_Cards/_update_card/it_should_behave_like_PUT_resource/when_card_not_found/returns_error_status.yml +79 -0
  94. 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
  95. 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
  96. data/spec/cassettes/OiApi_Client_DataTransfers/_create_data_transfer/it_should_behave_like_POST_resource/bad_request/returns_an_error_message.yml +352 -0
  97. data/spec/cassettes/OiApi_Client_DataTransfers/_create_data_transfer/it_should_behave_like_POST_resource/bad_request/returns_an_error_status.yml +352 -0
  98. data/spec/cassettes/OiApi_Client_DataTransfers/_create_data_transfer/it_should_behave_like_POST_resource/returns_201_created.yml +352 -0
  99. data/spec/cassettes/OiApi_Client_DataTransfers/_create_data_transfer/it_should_behave_like_POST_resource/returns_a_success_message.yml +272 -0
  100. data/spec/cassettes/OiApi_Client_DataTransfers/_create_data_transfer/it_should_behave_like_POST_resource/returns_a_success_status.yml +352 -0
  101. data/spec/cassettes/OiApi_Client_DataTransfers/_data_transfer/it_should_behave_like_GET_resource/returns_200_OK.yml +393 -0
  102. data/spec/cassettes/OiApi_Client_DataTransfers/_data_transfer/it_should_behave_like_GET_resource/returns_HTTParty_Response.yml +393 -0
  103. data/spec/cassettes/OiApi_Client_DataTransfers/_data_transfer/it_should_behave_like_GET_resource/returns_the_resource.yml +472 -0
  104. 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
  105. 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
  106. data/spec/cassettes/OiApi_Client_DataTransfers/_data_transfers/it_should_behave_like_GET_resources/returns_200_OK.yml +354 -0
  107. data/spec/cassettes/OiApi_Client_DataTransfers/_data_transfers/it_should_behave_like_GET_resources/returns_HTTParty_Response.yml +434 -0
  108. data/spec/cassettes/OiApi_Client_DataTransfers/_data_transfers/it_should_behave_like_GET_resources/returns_all_resources.yml +434 -0
  109. data/spec/cassettes/OiApi_Client_DataTransfers/_delete_data_transfer/it_should_behave_like_DELETE_resource/deletes_a_data_transfer.yml +428 -0
  110. data/spec/cassettes/OiApi_Client_DataTransfers/_delete_data_transfer/it_should_behave_like_DELETE_resource/returns_200_OK.yml +390 -0
  111. data/spec/cassettes/OiApi_Client_DataTransfers/_delete_data_transfer/it_should_behave_like_DELETE_resource/returns_the_correct_message.yml +310 -0
  112. data/spec/cassettes/OiApi_Client_DataTransfers/_delete_data_transfer/it_should_behave_like_DELETE_resource/returns_the_correct_status.yml +390 -0
  113. 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
  114. 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
  115. 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
  116. 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
  117. data/spec/cassettes/OiApi_Client_DataTransfers/_update_data_transfer/it_should_behave_like_PUT_resource/bad_request/returns_an_error_message.yml +390 -0
  118. data/spec/cassettes/OiApi_Client_DataTransfers/_update_data_transfer/it_should_behave_like_PUT_resource/bad_request/returns_an_error_status.yml +390 -0
  119. data/spec/cassettes/OiApi_Client_DataTransfers/_update_data_transfer/it_should_behave_like_PUT_resource/returns_200_OK.yml +389 -0
  120. data/spec/cassettes/OiApi_Client_DataTransfers/_update_data_transfer/it_should_behave_like_PUT_resource/returns_the_correct_message.yml +389 -0
  121. data/spec/cassettes/OiApi_Client_DataTransfers/_update_data_transfer/it_should_behave_like_PUT_resource/returns_the_correct_status.yml +349 -0
  122. 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
  123. 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
  124. 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
  125. 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
  126. data/spec/cassettes/OiApi_Client_Offers/_create_offer/it_should_behave_like_POST_resource/bad_request/returns_an_error_message.yml +195 -0
  127. data/spec/cassettes/OiApi_Client_Offers/_create_offer/it_should_behave_like_POST_resource/bad_request/returns_an_error_status.yml +195 -0
  128. data/spec/cassettes/OiApi_Client_Offers/_create_offer/it_should_behave_like_POST_resource/returns_201_created.yml +196 -0
  129. data/spec/cassettes/OiApi_Client_Offers/_create_offer/it_should_behave_like_POST_resource/returns_a_success_message.yml +156 -0
  130. data/spec/cassettes/OiApi_Client_Offers/_create_offer/it_should_behave_like_POST_resource/returns_a_success_status.yml +196 -0
  131. data/spec/cassettes/OiApi_Client_Offers/_offer/it_should_behave_like_GET_resource/returns_200_OK.yml +246 -0
  132. data/spec/cassettes/OiApi_Client_Offers/_offer/it_should_behave_like_GET_resource/returns_HTTParty_Response.yml +246 -0
  133. data/spec/cassettes/OiApi_Client_Offers/_offer/it_should_behave_like_GET_resource/returns_the_resource.yml +284 -0
  134. data/spec/cassettes/OiApi_Client_Offers/_offer/it_should_behave_like_GET_resource/when_offer_id_not_found/returns_404.yml +115 -0
  135. 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
  136. data/spec/cassettes/OiApi_Client_Offers/_offers/it_should_behave_like_GET_resources/returns_200_OK.yml +416 -0
  137. data/spec/cassettes/OiApi_Client_Offers/_offers/it_should_behave_like_GET_resources/returns_HTTParty_Response.yml +457 -0
  138. data/spec/cassettes/OiApi_Client_Offers/_offers/it_should_behave_like_GET_resources/returns_all_resources.yml +457 -0
  139. 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
  140. data/spec/cassettes/OiApi_Client_Offers/_update_offer/it_should_behave_like_PUT_resource/bad_request/returns_an_error_message.yml +234 -0
  141. data/spec/cassettes/OiApi_Client_Offers/_update_offer/it_should_behave_like_PUT_resource/bad_request/returns_an_error_status.yml +234 -0
  142. data/spec/cassettes/OiApi_Client_Offers/_update_offer/it_should_behave_like_PUT_resource/returns_200_OK.yml +234 -0
  143. data/spec/cassettes/OiApi_Client_Offers/_update_offer/it_should_behave_like_PUT_resource/returns_the_correct_message.yml +234 -0
  144. data/spec/cassettes/OiApi_Client_Offers/_update_offer/it_should_behave_like_PUT_resource/returns_the_correct_status.yml +315 -0
  145. data/spec/cassettes/OiApi_Client_Offers/_update_offer/it_should_behave_like_PUT_resource/when_offer_not_found/returns_404.yml +154 -0
  146. data/spec/cassettes/OiApi_Client_Offers/_update_offer/it_should_behave_like_PUT_resource/when_offer_not_found/returns_error_status.yml +114 -0
  147. 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
  148. data/spec/cassettes/OiApi_Client_Reports/_reports/it_should_behave_like_GET_resources/returns_200_OK.yml +46 -0
  149. data/spec/cassettes/OiApi_Client_Reports/_reports/it_should_behave_like_GET_resources/returns_HTTParty_Response.yml +46 -0
  150. data/spec/cassettes/OiApi_Client_Reports/_reports/it_should_behave_like_GET_resources/returns_all_resources.yml +46 -0
  151. data/spec/cassettes/OiApi_Client_Reports/_reports/returns_a_report_summary.yml +46 -0
  152. data/spec/cassettes/OiApi_Client_Reports/_reports_with_query_params/retrieves_the_last_60_days_of_data.yml +42 -0
  153. data/spec/oi_api/client/advertisers_spec.rb +86 -0
  154. data/spec/oi_api/client/auto_responders_spec.rb +55 -0
  155. data/spec/oi_api/client/balances_spec.rb +22 -0
  156. data/spec/oi_api/client/cards_spec.rb +60 -0
  157. data/spec/oi_api/client/charges_spec.rb +9 -0
  158. data/spec/oi_api/client/data_transfers_spec.rb +95 -0
  159. data/spec/oi_api/client/offers_spec.rb +84 -0
  160. data/spec/oi_api/client/reports_spec.rb +31 -0
  161. data/spec/oi_api/client/subscriptions_spec.rb +11 -0
  162. data/spec/oi_api_spec.rb +49 -0
  163. data/spec/shared_examples_for_delete_resource.rb +37 -0
  164. data/spec/shared_examples_for_get_resource.rb +33 -0
  165. data/spec/shared_examples_for_get_resources.rb +15 -0
  166. data/spec/shared_examples_for_post_resource.rb +31 -0
  167. data/spec/shared_examples_for_put_resource.rb +46 -0
  168. data/spec/spec_helper.rb +60 -0
  169. data/spec/support/advertisers_factory.rb +22 -0
  170. data/spec/support/auto_responders_factory.rb +27 -0
  171. data/spec/support/balances_factory.rb +12 -0
  172. data/spec/support/cards_factory.rb +34 -0
  173. data/spec/support/charges_factory.rb +16 -0
  174. data/spec/support/data_transfers_factory.rb +34 -0
  175. data/spec/support/factory.rb +48 -0
  176. data/spec/support/offers_factory.rb +53 -0
  177. data/spec/support/reports_factory.rb +12 -0
  178. data/spec/support/subscriptions_factory.rb +16 -0
  179. data/spec_output.txt +341 -0
  180. 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
@@ -0,0 +1,12 @@
1
+ module ReportsFactory
2
+
3
+ def valid_report_params(params = {})
4
+ end
5
+
6
+ def create_report(params = {})
7
+ end
8
+
9
+ def delete_all_reports
10
+ end
11
+
12
+ end
@@ -0,0 +1,16 @@
1
+ module SubscriptionsFactory
2
+
3
+ def valid_subscription_params(params = {})
4
+ {
5
+ subscription_id: 428,
6
+ payment_amount: 100.0
7
+ }
8
+ end
9
+
10
+ def create_subscription(params = {})
11
+ end
12
+
13
+ def delete_all_subscriptions
14
+ end
15
+
16
+ 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"