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.
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"