google-dfp-api 0.9.4 → 0.9.5

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 (247) hide show
  1. data/ChangeLog +4 -0
  2. data/README.md +1 -3
  3. data/dfp_api.yml +1 -9
  4. data/examples/v201408/report_service/run_sales_report.rb +3 -3
  5. data/examples/v201411/report_service/run_sales_report.rb +3 -3
  6. data/examples/v201502/report_service/run_sales_report.rb +3 -3
  7. data/examples/{v201405 → v201505}/activity_group_service/create_activity_groups.rb +1 -1
  8. data/examples/{v201405 → v201505}/activity_group_service/get_active_activity_groups.rb +18 -27
  9. data/examples/{v201405 → v201505}/activity_group_service/get_all_activity_groups.rb +13 -23
  10. data/examples/{v201405 → v201505}/activity_group_service/update_activity_groups.rb +11 -9
  11. data/examples/{v201405 → v201505}/activity_service/create_activities.rb +1 -1
  12. data/examples/{v201405 → v201505}/activity_service/get_active_activities.rb +15 -27
  13. data/examples/{v201405 → v201505}/activity_service/get_all_activities.rb +10 -21
  14. data/examples/{v201405 → v201505}/activity_service/update_activities.rb +9 -7
  15. data/examples/{v201405 → v201505}/audience_segment_service/create_audience_segments.rb +1 -1
  16. data/examples/{v201405 → v201505}/audience_segment_service/get_all_audience_segments.rb +10 -19
  17. data/examples/{v201405 → v201505}/audience_segment_service/get_first_party_audience_segments.rb +14 -21
  18. data/examples/{v201405 → v201505}/audience_segment_service/populate_first_party_audience_segments.rb +16 -14
  19. data/examples/{v201405 → v201505}/audience_segment_service/update_audience_segments.rb +12 -11
  20. data/examples/{v201405 → v201505}/common/error_handling.rb +1 -1
  21. data/examples/{v201405 → v201505}/common/oauth2_jwt_handling.rb +9 -17
  22. data/examples/{v201405 → v201505}/common/setup_oauth2.rb +1 -1
  23. data/examples/{v201405 → v201505}/company_service/create_companies.rb +1 -1
  24. data/examples/{v201405 → v201505}/company_service/get_all_companies.rb +10 -18
  25. data/examples/{v201405 → v201505}/company_service/get_companies_by_statement.rb +21 -16
  26. data/examples/{v201405 → v201505}/company_service/update_companies.rb +13 -10
  27. data/examples/{v201405 → v201505}/contact_service/create_contacts.rb +1 -1
  28. data/examples/{v201405 → v201505}/contact_service/get_all_contacts.rb +11 -19
  29. data/examples/{v201405 → v201505}/contact_service/get_uninvited_contacts.rb +18 -22
  30. data/examples/{v201405 → v201505}/contact_service/update_contacts.rb +9 -7
  31. data/examples/{v201405 → v201505}/content_metadata_key_hierarchy_service/create_content_metadata_key_hierarchies.rb +1 -1
  32. data/examples/{v201405 → v201505}/content_metadata_key_hierarchy_service/delete_content_metadata_key_hierarchies.rb +11 -8
  33. data/examples/{v201405 → v201505}/content_metadata_key_hierarchy_service/get_all_content_metadata_key_hierarchies.rb +8 -18
  34. data/examples/{v201405 → v201505}/content_metadata_key_hierarchy_service/update_content_metadata_key_hierarchies.rb +9 -7
  35. data/examples/{v201405 → v201505}/content_service/get_all_content.rb +9 -18
  36. data/examples/{v201405 → v201505}/content_service/get_content_by_category.rb +18 -28
  37. data/examples/{v201405 → v201505}/creative_service/copy_image_creatives.rb +7 -7
  38. data/examples/{v201405 → v201505}/creative_service/create_creative_from_template.rb +1 -1
  39. data/examples/{v201405 → v201505}/creative_service/create_creatives.rb +1 -1
  40. data/examples/{v201405 → v201505}/creative_service/create_custom_creative.rb +1 -1
  41. data/examples/{v201405 → v201505}/creative_service/get_all_creatives.rb +8 -17
  42. data/examples/{v201405 → v201505}/creative_service/get_creatives_by_statement.rb +18 -13
  43. data/examples/{v201405 → v201505}/creative_service/update_creatives.rb +16 -11
  44. data/examples/{v201405 → v201505}/creative_set_service/associate_creative_set_to_line_item.rb +1 -1
  45. data/examples/{v201405 → v201505}/creative_set_service/create_creative_set.rb +1 -1
  46. data/examples/{v201405 → v201505}/creative_set_service/get_all_creative_sets.rb +9 -17
  47. data/examples/{v201405 → v201505}/creative_set_service/get_creative_sets_by_statement.rb +20 -14
  48. data/examples/{v201405 → v201505}/creative_set_service/update_creative_sets.rb +10 -7
  49. data/examples/{v201405 → v201505}/creative_template_service/get_all_creative_templates.rb +9 -17
  50. data/examples/{v201405/creative_template_service/get_creative_templates_by_statement.rb → v201505/creative_template_service/get_system_defined_creative_templates.rb} +24 -13
  51. data/examples/{v201405 → v201505}/creative_wrapper_service/create_creative_wrappers.rb +1 -1
  52. data/examples/{v201405 → v201505}/creative_wrapper_service/deactivate_creative_wrapper.rb +9 -7
  53. data/examples/{v201405 → v201505}/creative_wrapper_service/get_all_creative_wrappers.rb +10 -18
  54. data/examples/{v201405 → v201505}/creative_wrapper_service/get_creative_wrappers_by_statement.rb +17 -12
  55. data/examples/{v201405 → v201505}/creative_wrapper_service/update_creative_wrappers.rb +10 -7
  56. data/examples/{v201405 → v201505}/custom_field_service/create_custom_field_options.rb +1 -1
  57. data/examples/{v201405 → v201505}/custom_field_service/create_custom_fields.rb +1 -1
  58. data/examples/{v201405 → v201505}/custom_field_service/deactivate_all_line_item_custom_fields.rb +13 -23
  59. data/examples/{v201405 → v201505}/custom_field_service/get_all_custom_fields.rb +11 -19
  60. data/examples/{v201405 → v201505}/custom_field_service/get_all_line_item_custom_fields.rb +19 -14
  61. data/examples/{v201405 → v201505}/custom_field_service/set_line_item_custom_field_value.rb +24 -19
  62. data/examples/{v201405 → v201505}/custom_field_service/update_custom_fields.rb +10 -7
  63. data/examples/{v201405 → v201505}/custom_targeting_service/create_custom_targeting_keys_and_values.rb +1 -1
  64. data/examples/{v201405 → v201505}/custom_targeting_service/delete_custom_targeting_keys.rb +16 -20
  65. data/examples/{v201405 → v201505}/custom_targeting_service/delete_custom_targeting_values.rb +23 -21
  66. data/examples/{v201405 → v201505}/custom_targeting_service/get_all_custom_targeting_keys_and_values.rb +15 -36
  67. data/examples/{v201405 → v201505}/custom_targeting_service/get_custom_targeting_keys_by_statement.rb +20 -16
  68. data/examples/{v201405 → v201505}/custom_targeting_service/get_custom_targeting_values_by_statement.rb +19 -15
  69. data/examples/{v201405 → v201505}/custom_targeting_service/update_custom_targeting_keys.rb +4 -3
  70. data/examples/{v201405 → v201505}/custom_targeting_service/update_custom_targeting_values.rb +34 -30
  71. data/examples/{v201405/forecast_service/get_forecast.rb → v201505/forecast_service/get_availability_forecast.rb} +38 -16
  72. data/examples/{v201405/forecast_service/get_forecast_by_id.rb → v201505/forecast_service/get_availability_forecast_for_line_item.rb} +18 -11
  73. data/examples/v201505/forecast_service/get_delivery_forecast_for_line_items.rb +81 -0
  74. data/examples/{v201405 → v201505}/inventory_service/create_ad_units.rb +1 -1
  75. data/examples/{v201405 → v201505}/inventory_service/create_mobile_ad_unit.rb +1 -1
  76. data/examples/{v201405 → v201505}/inventory_service/create_video_ad_unit.rb +1 -1
  77. data/examples/{v201405 → v201505}/inventory_service/deactivate_ad_units.rb +19 -23
  78. data/examples/{v201405 → v201505}/inventory_service/get_ad_unit_sizes.rb +7 -14
  79. data/examples/{v201405 → v201505}/inventory_service/get_ad_units_by_statement.rb +18 -13
  80. data/examples/{v201405 → v201505}/inventory_service/get_all_ad_units.rb +8 -17
  81. data/examples/{v201405 → v201505}/inventory_service/update_ad_units.rb +23 -11
  82. data/examples/{v201405 → v201505}/label_service/create_labels.rb +1 -1
  83. data/examples/{v201405 → v201505}/label_service/deactivate_labels.rb +15 -22
  84. data/examples/{v201405 → v201505}/label_service/get_all_labels.rb +9 -18
  85. data/examples/{v201405 → v201505}/label_service/get_labels_by_statement.rb +16 -11
  86. data/examples/{v201405 → v201505}/label_service/update_labels.rb +24 -26
  87. data/examples/{v201405 → v201505}/line_item_creative_association_service/create_licas.rb +1 -1
  88. data/examples/{v201405 → v201505}/line_item_creative_association_service/deactivate_licas.rb +15 -24
  89. data/examples/{v201405 → v201505}/line_item_creative_association_service/get_all_licas.rb +8 -17
  90. data/examples/{v201405 → v201505}/line_item_creative_association_service/get_licas_by_statement.rb +10 -8
  91. data/examples/{v201405 → v201505}/line_item_creative_association_service/update_licas.rb +16 -7
  92. data/examples/{v201405 → v201505}/line_item_service/activate_line_items.rb +13 -21
  93. data/examples/{v201405 → v201505}/line_item_service/create_line_items.rb +11 -4
  94. data/examples/{v201405 → v201505}/line_item_service/create_video_line_item.rb +13 -3
  95. data/examples/{v201405 → v201505}/line_item_service/get_all_line_items.rb +9 -17
  96. data/examples/{v201405 → v201505}/line_item_service/get_line_items_by_statement.rb +19 -17
  97. data/examples/{v201405 → v201505}/line_item_service/get_recently_updated_line_items.rb +19 -13
  98. data/examples/{v201405 → v201505}/line_item_service/target_custom_criteria.rb +9 -7
  99. data/examples/{v201405 → v201505}/line_item_service/update_line_items.rb +9 -9
  100. data/examples/{v201405 → v201505}/network_service/get_all_networks.rb +1 -1
  101. data/examples/{v201405 → v201505}/network_service/get_current_network.rb +1 -1
  102. data/examples/{v201405 → v201505}/network_service/make_test_network.rb +1 -1
  103. data/examples/{v201405 → v201505}/order_service/approve_orders.rb +16 -24
  104. data/examples/{v201405 → v201505}/order_service/create_orders.rb +1 -1
  105. data/examples/{v201405 → v201505}/order_service/get_all_orders.rb +8 -17
  106. data/examples/{v201405 → v201505}/order_service/get_orders_by_statement.rb +18 -14
  107. data/examples/{v201405 → v201505}/order_service/update_orders.rb +15 -7
  108. data/examples/{v201405 → v201505}/placement_service/create_placements.rb +4 -2
  109. data/examples/{v201405 → v201505}/placement_service/deactivate_placements.rb +14 -22
  110. data/examples/{v201405 → v201505}/placement_service/get_all_placements.rb +9 -17
  111. data/examples/{v201405 → v201505}/placement_service/get_placements_by_statement.rb +18 -13
  112. data/examples/{v201405 → v201505}/placement_service/update_placements.rb +16 -6
  113. data/examples/{v201405 → v201505}/publisher_query_language_service/fetch_match_tables.rb +8 -11
  114. data/examples/{v201405 → v201505}/publisher_query_language_service/get_all_line_items.rb +8 -9
  115. data/examples/{v201405 → v201505}/publisher_query_language_service/get_geo_targets.rb +10 -10
  116. data/examples/{v201405 → v201505}/publisher_query_language_service/get_line_items_named_like.rb +10 -10
  117. data/examples/{v201405 → v201505}/report_service/display_report.rb +1 -1
  118. data/examples/{v201405 → v201505}/report_service/download_report.rb +1 -1
  119. data/examples/{v201405 → v201505}/report_service/run_delivery_report.rb +6 -5
  120. data/examples/{v201405 → v201505}/report_service/run_inventory_report.rb +6 -5
  121. data/examples/{v201405 → v201505}/report_service/run_reach_report.rb +6 -5
  122. data/examples/{v201405/report_service/run_merged_delivery_report.rb → v201505/report_service/run_report_with_custom_fields.rb} +17 -18
  123. data/examples/{v201405 → v201505}/report_service/run_sales_report.rb +6 -5
  124. data/examples/{v201405 → v201505}/suggested_ad_unit_service/approve_all_suggested_ad_units.rb +25 -21
  125. data/examples/{v201405 → v201505}/suggested_ad_unit_service/get_all_suggested_ad_units.rb +9 -18
  126. data/examples/{v201405 → v201505}/suggested_ad_unit_service/get_suggested_ad_units_by_statement.rb +24 -21
  127. data/examples/{v201405 → v201505}/team_service/create_teams.rb +1 -1
  128. data/examples/{v201405 → v201505}/team_service/get_all_teams.rb +8 -17
  129. data/examples/{v201405 → v201505}/team_service/get_teams_by_statement.rb +15 -11
  130. data/examples/{v201405 → v201505}/team_service/update_teams.rb +4 -3
  131. data/examples/{v201405 → v201505}/user_service/create_users.rb +1 -1
  132. data/examples/{v201405 → v201505}/user_service/deactivate_users.rb +7 -7
  133. data/examples/{v201405 → v201505}/user_service/get_all_roles.rb +1 -1
  134. data/examples/{v201405 → v201505}/user_service/get_all_users.rb +8 -18
  135. data/examples/{v201405 → v201505}/user_service/get_current_user.rb +1 -1
  136. data/examples/{v201405 → v201505}/user_service/get_users_by_statement.rb +17 -12
  137. data/examples/{v201405 → v201505}/user_service/update_users.rb +15 -6
  138. data/examples/{v201405 → v201505}/user_team_association_service/create_user_team_associations.rb +1 -1
  139. data/examples/{v201405 → v201505}/user_team_association_service/delete_user_team_associations.rb +13 -21
  140. data/examples/{v201405 → v201505}/user_team_association_service/get_all_user_team_associations.rb +10 -17
  141. data/examples/{v201405 → v201505}/user_team_association_service/get_user_team_associations_by_statement.rb +20 -16
  142. data/examples/{v201405 → v201505}/user_team_association_service/update_user_team_associations.rb +8 -7
  143. data/lib/dfp_api/api_config.rb +27 -4
  144. data/lib/dfp_api/v201505/activity_group_service.rb +42 -0
  145. data/lib/dfp_api/v201505/activity_group_service_registry.rb +45 -0
  146. data/lib/dfp_api/v201505/activity_service.rb +42 -0
  147. data/lib/dfp_api/v201505/activity_service_registry.rb +45 -0
  148. data/lib/dfp_api/v201505/ad_exclusion_rule_service.rb +46 -0
  149. data/lib/dfp_api/v201505/ad_exclusion_rule_service_registry.rb +45 -0
  150. data/lib/dfp_api/v201505/ad_rule_service.rb +46 -0
  151. data/lib/dfp_api/v201505/ad_rule_service_registry.rb +45 -0
  152. data/lib/dfp_api/v201505/audience_segment_service.rb +46 -0
  153. data/lib/dfp_api/v201505/audience_segment_service_registry.rb +45 -0
  154. data/lib/dfp_api/v201505/base_rate_service.rb +46 -0
  155. data/lib/dfp_api/v201505/base_rate_service_registry.rb +45 -0
  156. data/lib/dfp_api/v201505/company_service.rb +42 -0
  157. data/lib/dfp_api/v201505/company_service_registry.rb +45 -0
  158. data/lib/dfp_api/v201505/contact_service.rb +42 -0
  159. data/lib/dfp_api/v201505/contact_service_registry.rb +45 -0
  160. data/lib/dfp_api/v201505/content_bundle_service.rb +46 -0
  161. data/lib/dfp_api/v201505/content_bundle_service_registry.rb +45 -0
  162. data/lib/dfp_api/v201505/content_metadata_key_hierarchy_service.rb +46 -0
  163. data/lib/dfp_api/v201505/content_metadata_key_hierarchy_service_registry.rb +45 -0
  164. data/lib/dfp_api/v201505/content_service.rb +38 -0
  165. data/lib/dfp_api/v201505/content_service_registry.rb +45 -0
  166. data/lib/dfp_api/v201505/creative_service.rb +42 -0
  167. data/lib/dfp_api/v201505/creative_service_registry.rb +45 -0
  168. data/lib/dfp_api/v201505/creative_set_service.rb +42 -0
  169. data/lib/dfp_api/v201505/creative_set_service_registry.rb +45 -0
  170. data/lib/dfp_api/v201505/creative_template_service.rb +34 -0
  171. data/lib/dfp_api/v201505/creative_template_service_registry.rb +45 -0
  172. data/lib/dfp_api/v201505/creative_wrapper_service.rb +46 -0
  173. data/lib/dfp_api/v201505/creative_wrapper_service_registry.rb +45 -0
  174. data/lib/dfp_api/v201505/custom_field_service.rb +58 -0
  175. data/lib/dfp_api/v201505/custom_field_service_registry.rb +45 -0
  176. data/lib/dfp_api/v201505/custom_targeting_service.rb +62 -0
  177. data/lib/dfp_api/v201505/custom_targeting_service_registry.rb +45 -0
  178. data/lib/dfp_api/v201505/exchange_rate_service.rb +46 -0
  179. data/lib/dfp_api/v201505/exchange_rate_service_registry.rb +45 -0
  180. data/lib/dfp_api/v201505/forecast_service.rb +46 -0
  181. data/lib/dfp_api/v201505/forecast_service_registry.rb +45 -0
  182. data/lib/dfp_api/v201505/inventory_service.rb +50 -0
  183. data/lib/dfp_api/v201505/inventory_service_registry.rb +45 -0
  184. data/lib/dfp_api/v201505/label_service.rb +46 -0
  185. data/lib/dfp_api/v201505/label_service_registry.rb +45 -0
  186. data/lib/dfp_api/v201505/line_item_creative_association_service.rb +50 -0
  187. data/lib/dfp_api/v201505/line_item_creative_association_service_registry.rb +45 -0
  188. data/lib/dfp_api/v201505/line_item_service.rb +46 -0
  189. data/lib/dfp_api/v201505/line_item_service_registry.rb +45 -0
  190. data/lib/dfp_api/v201505/line_item_template_service.rb +34 -0
  191. data/lib/dfp_api/v201505/line_item_template_service_registry.rb +45 -0
  192. data/lib/dfp_api/v201505/live_stream_event_service.rb +46 -0
  193. data/lib/dfp_api/v201505/live_stream_event_service_registry.rb +45 -0
  194. data/lib/dfp_api/v201505/network_service.rb +46 -0
  195. data/lib/dfp_api/v201505/network_service_registry.rb +45 -0
  196. data/lib/dfp_api/v201505/order_service.rb +46 -0
  197. data/lib/dfp_api/v201505/order_service_registry.rb +45 -0
  198. data/lib/dfp_api/v201505/package_service.rb +46 -0
  199. data/lib/dfp_api/v201505/package_service_registry.rb +45 -0
  200. data/lib/dfp_api/v201505/placement_service.rb +46 -0
  201. data/lib/dfp_api/v201505/placement_service_registry.rb +45 -0
  202. data/lib/dfp_api/v201505/premium_rate_service.rb +42 -0
  203. data/lib/dfp_api/v201505/premium_rate_service_registry.rb +45 -0
  204. data/lib/dfp_api/v201505/product_package_item_service.rb +46 -0
  205. data/lib/dfp_api/v201505/product_package_item_service_registry.rb +45 -0
  206. data/lib/dfp_api/v201505/product_package_service.rb +46 -0
  207. data/lib/dfp_api/v201505/product_package_service_registry.rb +45 -0
  208. data/lib/dfp_api/v201505/product_service.rb +42 -0
  209. data/lib/dfp_api/v201505/product_service_registry.rb +45 -0
  210. data/lib/dfp_api/v201505/product_template_service.rb +46 -0
  211. data/lib/dfp_api/v201505/product_template_service_registry.rb +45 -0
  212. data/lib/dfp_api/v201505/proposal_line_item_service.rb +46 -0
  213. data/lib/dfp_api/v201505/proposal_line_item_service_registry.rb +45 -0
  214. data/lib/dfp_api/v201505/proposal_service.rb +46 -0
  215. data/lib/dfp_api/v201505/proposal_service_registry.rb +45 -0
  216. data/lib/dfp_api/v201505/publisher_query_language_service.rb +34 -0
  217. data/lib/dfp_api/v201505/publisher_query_language_service_registry.rb +45 -0
  218. data/lib/dfp_api/v201505/rate_card_service.rb +46 -0
  219. data/lib/dfp_api/v201505/rate_card_service_registry.rb +45 -0
  220. data/lib/dfp_api/v201505/reconciliation_order_report_service.rb +38 -0
  221. data/lib/dfp_api/v201505/reconciliation_order_report_service_registry.rb +45 -0
  222. data/lib/dfp_api/v201505/reconciliation_report_row_service.rb +38 -0
  223. data/lib/dfp_api/v201505/reconciliation_report_row_service_registry.rb +45 -0
  224. data/lib/dfp_api/v201505/reconciliation_report_service.rb +38 -0
  225. data/lib/dfp_api/v201505/reconciliation_report_service_registry.rb +45 -0
  226. data/lib/dfp_api/v201505/report_service.rb +46 -0
  227. data/lib/dfp_api/v201505/report_service_registry.rb +45 -0
  228. data/lib/dfp_api/v201505/shared_ad_unit_service.rb +38 -0
  229. data/lib/dfp_api/v201505/shared_ad_unit_service_registry.rb +45 -0
  230. data/lib/dfp_api/v201505/suggested_ad_unit_service.rb +38 -0
  231. data/lib/dfp_api/v201505/suggested_ad_unit_service_registry.rb +45 -0
  232. data/lib/dfp_api/v201505/team_service.rb +42 -0
  233. data/lib/dfp_api/v201505/team_service_registry.rb +45 -0
  234. data/lib/dfp_api/v201505/user_service.rb +54 -0
  235. data/lib/dfp_api/v201505/user_service_registry.rb +45 -0
  236. data/lib/dfp_api/v201505/user_team_association_service.rb +46 -0
  237. data/lib/dfp_api/v201505/user_team_association_service_registry.rb +45 -0
  238. data/lib/dfp_api/v201505/workflow_request_service.rb +38 -0
  239. data/lib/dfp_api/v201505/workflow_request_service_registry.rb +45 -0
  240. data/lib/dfp_api/version.rb +1 -1
  241. data/test/bugs/test_issue_00000016.rb +1 -1
  242. data/test/dfp_api/test_config.yml +6 -5
  243. data/test/dfp_api/test_dfp_api.rb +32 -32
  244. metadata +234 -140
  245. data/examples/v201405/creative_template_service/get_creative_template.rb +0 -74
  246. data/examples/v201405/report_service/run_report_with_custom_fields.rb +0 -135
  247. data/examples/v201405/suggested_ad_unit_service/get_suggested_ad_unit.rb +0 -75
@@ -27,8 +27,9 @@
27
27
  require 'date'
28
28
 
29
29
  require 'dfp_api'
30
+ require 'dfp_api_statement'
30
31
 
31
- API_VERSION = :v201405
32
+ API_VERSION = :v201505
32
33
 
33
34
  def get_recently_updated_line_items()
34
35
  # Get DfpApi instance and load configuration from ~/dfp_api.yml.
@@ -46,10 +47,10 @@ def get_recently_updated_line_items()
46
47
 
47
48
  # Create statement object to only select line items belonging to the order and
48
49
  # have been modified in the last 3 days.
49
- statement = {
50
- :query => 'WHERE lastModifiedDateTime >= :date_time_string AND ' +
51
- 'orderId = :order_id LIMIT 500',
52
- :values => [
50
+ statement = DfpApiStatement::FilterStatement.new(
51
+ 'WHERE lastModifiedDateTime >= :date_time_string AND ' +
52
+ 'orderId = :order_id ORDER BY id ASC',
53
+ [
53
54
  {:key => 'order_id',
54
55
  :value => {:value => order_id, :xsi_type => 'NumberValue'}},
55
56
  {:key => 'date_time_string',
@@ -58,17 +59,22 @@ def get_recently_updated_line_items()
58
59
  :xsi_type => 'TextValue'
59
60
  }},
60
61
  ]
61
- }
62
+ )
62
63
 
63
- # Get line items by statement.
64
- page = line_item_service.get_line_items_by_statement(statement)
64
+ begin
65
+ # Get line items by statement.
66
+ page = line_item_service.get_line_items_by_statement(
67
+ statement.toStatement())
65
68
 
66
- if page and page[:results]
67
- page[:results].each_with_index do |line_item, index|
68
- puts "%d) [%d] belongs to order ID %d, name: %s." % [index,
69
- line_item[:id], line_item[:order_id], line_item[:name]]
69
+ if page and page[:results]
70
+ page[:results].each_with_index do |line_item, index|
71
+ puts "%d) [%d] belongs to order ID %d, name: %s." % [
72
+ index + statement.offset, line_item[:id],
73
+ line_item[:order_id], line_item[:name]]
74
+ end
70
75
  end
71
- end
76
+ statement.offset += DfpApiStatement::SUGGESTED_PAGE_LIMIT
77
+ end while statement.offset < page[:total_result_set_size]
72
78
 
73
79
  # Print a footer.
74
80
  if page.include?(:total_result_set_size)
@@ -27,10 +27,11 @@
27
27
  # LineItemService.updateLineItems
28
28
 
29
29
  require 'dfp_api'
30
+ require 'dfp_api_statement'
30
31
 
31
32
  require 'pp'
32
33
 
33
- API_VERSION = :v201405
34
+ API_VERSION = :v201505
34
35
  PAGE_SIZE = 500
35
36
 
36
37
  def target_custom_criteria()
@@ -91,16 +92,17 @@ def target_custom_criteria()
91
92
 
92
93
 
93
94
  # Create a statement to only select a single line item.
94
- statement = {
95
- :query => 'WHERE id = :id ORDER BY id ASC LIMIT 1',
96
- :values => [
95
+ statement = DfpApiStatement::FilterStatement.new(
96
+ 'WHERE id = :id ORDER BY id ASC',
97
+ [
97
98
  {:key => 'id',
98
99
  :value => {:value => line_item_id, :xsi_type => 'NumberValue'}}
99
- ]
100
- }
100
+ ],
101
+ 1
102
+ )
101
103
 
102
104
  # Get line items by statement.
103
- page = line_item_service.get_line_items_by_statement(statement)
105
+ page = line_item_service.get_line_items_by_statement(statement.toStatement())
104
106
 
105
107
  if page[:results]
106
108
  line_item = page[:results].first
@@ -18,15 +18,15 @@
18
18
  # See the License for the specific language governing permissions and
19
19
  # limitations under the License.
20
20
  #
21
- # This example updates the delivery rate of all line items for an order up to
22
- # the first 500. To determine which line items exist, run get_all_line_items.rb.
21
+ # This example updates the delivery rate of all line items for an order.
22
+ # To determine which line items exist, run get_all_line_items.rb.
23
23
  # To determine which order exist, run get_all_orders.rb.
24
24
  #
25
25
  # Tags: LineItemService.getLineItemsByStatement, LineItemService.updateLineItems
26
26
 
27
27
  require 'dfp_api'
28
28
 
29
- API_VERSION = :v201405
29
+ API_VERSION = :v201505
30
30
 
31
31
  def update_line_items()
32
32
  # Get DfpApi instance and load configuration from ~/dfp_api.yml.
@@ -43,19 +43,19 @@ def update_line_items()
43
43
  order_id = 'INSERT_ORDER_ID_HERE'.to_i
44
44
 
45
45
  # Create a statement to get line items with even delivery rates.
46
- statement = {
47
- :query => 'WHERE deliveryRateType = :delivery_rate_type AND ' +
48
- 'orderId = :order_id LIMIT 500',
49
- :values => [
46
+ statement = DfpApiStatement::FilterStatement.new(
47
+ 'WHERE deliveryRateType = :delivery_rate_type AND ' +
48
+ 'orderId = :order_id ',
49
+ [
50
50
  {:key => 'delivery_rate_type',
51
51
  :value => {:value => 'EVENLY', :xsi_type => 'TextValue'}},
52
52
  {:key => 'order_id',
53
53
  :value => {:value => order_id, :xsi_type => 'NumberValue'}}
54
54
  ]
55
- }
55
+ )
56
56
 
57
57
  # Get line items by statement.
58
- page = line_item_service.get_line_items_by_statement(statement)
58
+ page = line_item_service.get_line_items_by_statement(statement.toStatement())
59
59
 
60
60
  if page[:results]
61
61
  line_items = page[:results]
@@ -24,7 +24,7 @@
24
24
 
25
25
  require 'dfp_api'
26
26
 
27
- API_VERSION = :v201405
27
+ API_VERSION = :v201505
28
28
 
29
29
  def get_all_networks()
30
30
  # Get DfpApi instance and load configuration from ~/dfp_api.yml.
@@ -24,7 +24,7 @@
24
24
 
25
25
  require 'dfp_api'
26
26
 
27
- API_VERSION = :v201405
27
+ API_VERSION = :v201505
28
28
 
29
29
  def get_current_network()
30
30
  # Get DfpApi instance and load configuration from ~/dfp_api.yml.
@@ -35,7 +35,7 @@
35
35
 
36
36
  require 'dfp_api'
37
37
 
38
- API_VERSION = :v201405
38
+ API_VERSION = :v201505
39
39
 
40
40
  def make_test_network()
41
41
  # Get DfpApi instance and load configuration from ~/dfp_api.yml.
@@ -27,7 +27,7 @@
27
27
  require 'date'
28
28
  require 'dfp_api'
29
29
 
30
- API_VERSION = :v201405
30
+ API_VERSION = :v201505
31
31
  PAGE_SIZE = 500
32
32
 
33
33
  def approve_orders()
@@ -42,52 +42,44 @@ def approve_orders()
42
42
  order_service = dfp.service(:OrderService, API_VERSION)
43
43
 
44
44
  # Create a statement text to select all eligible draft or pending orders.
45
- statement_text = "WHERE status IN ('DRAFT', 'PENDING_APPROVAL') " +
46
- "AND endDateTime >= :today AND isArchived = FALSE"
47
- statement = {
48
- :query => statement_text,
49
- :values => [
45
+ statement = DfpApiStatement::FilterStatement.new(
46
+ "WHERE status IN ('DRAFT', 'PENDING_APPROVAL') " +
47
+ "AND endDateTime >= :today AND isArchived = FALSE",
48
+ [
50
49
  {:key => 'today',
51
50
  :value => {:value => Date.today.strftime('%Y-%m-%dT%H:%M:%S'),
52
51
  :xsi_type => 'TextValue'}}
53
- ]
54
- }
52
+ ]
53
+ )
55
54
 
56
- # Define initial values.
57
- offset = 0
58
- page = {}
59
55
  order_ids = []
60
56
 
61
57
  begin
62
- # Update the statement to get one page with current offset.
63
- statement[:query] =
64
- statement_text + " LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]
65
-
66
58
  # Get orders by statement.
67
- page = order_service.get_orders_by_statement(statement)
59
+ page = order_service.get_orders_by_statement(statement.toStatement())
68
60
 
69
61
  if page[:results]
70
- # Increase query offset by page size.
71
- offset += PAGE_SIZE
72
-
73
- page[:results].each do |order|
62
+ page[:results].each_with_index do |order, index|
74
63
  puts ("%d) Order ID: %d, status: %s and name: %s will be " +
75
- "approved.") % [order_ids.size, order[:id], order[:status],
64
+ "approved.") % [index + statement.offset,
65
+ order[:id], order[:status],
76
66
  order[:name]]
77
67
  order_ids << order[:id]
78
68
  end
79
69
  end
80
- end while offset < page[:total_result_set_size]
70
+ statement.offset += DfpApiStatement::SUGGESTED_PAGE_LIMIT
71
+ end while statement.offset < page[:total_result_set_size]
81
72
 
82
73
  puts "Number of orders to be approved: %d" % order_ids.size
83
74
 
84
75
  if !order_ids.empty?
85
76
  # Create statement for action.
86
- statement = {:query => "WHERE id IN (%s)" % order_ids.join(', ')}
77
+ statement = DfpApiStatement::FilterStatement.new(
78
+ "WHERE id IN (%s)" % order_ids.join(', '))
87
79
 
88
80
  # Perform action.
89
81
  result = order_service.perform_order_action(
90
- {:xsi_type => 'ApproveAndOverbookOrders'}, statement)
82
+ {:xsi_type => 'ApproveAndOverbookOrders'}, statement.toStatement())
91
83
 
92
84
  # Display results.
93
85
  if result and result[:num_changes] > 0
@@ -27,7 +27,7 @@
27
27
 
28
28
  require 'dfp_api'
29
29
 
30
- API_VERSION = :v201405
30
+ API_VERSION = :v201505
31
31
  # Number of orders to create.
32
32
  ITEM_COUNT = 5
33
33
 
@@ -23,9 +23,9 @@
23
23
  # Tags: OrderService.getOrdersByStatement
24
24
 
25
25
  require 'dfp_api'
26
+ require 'dfp_api_statement'
26
27
 
27
- API_VERSION = :v201405
28
- PAGE_SIZE = 500
28
+ API_VERSION = :v201505
29
29
 
30
30
  def get_all_orders()
31
31
  # Get DfpApi instance and load configuration from ~/dfp_api.yml.
@@ -38,32 +38,23 @@ def get_all_orders()
38
38
  # Get the OrderService.
39
39
  order_service = dfp.service(:OrderService, API_VERSION)
40
40
 
41
- # Define initial values.
42
- offset = 0
43
- page = {}
41
+ # Create statement for one page with current offset.
42
+ statement = DfpApiStatement::FilterStatement.new('ORDER BY id ASC')
44
43
 
45
44
  begin
46
- # Create statement for one page with current offset.
47
- statement = {:query => "LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]}
48
-
49
45
  # Get orders by statement.
50
- page = order_service.get_orders_by_statement(statement)
46
+ page = order_service.get_orders_by_statement(statement.toStatement())
51
47
 
52
48
  if page[:results]
53
- # Increase query offset by page size.
54
- offset += PAGE_SIZE
55
-
56
- # Get the start index for printout.
57
- start_index = page[:start_index]
58
-
59
49
  # Print details about each order in results page.
60
50
  page[:results].each_with_index do |order, index|
61
51
  puts "%d) Order ID: %d, name: %s, advertiser ID: %d" %
62
- [index + start_index, order[:id], order[:name],
52
+ [index + statement.offset, order[:id], order[:name],
63
53
  order[:advertiser_id]]
64
54
  end
65
55
  end
66
- end while offset < page[:total_result_set_size]
56
+ statement.offset += DfpApiStatement::SUGGESTED_PAGE_LIMIT
57
+ end while statement.offset < page[:total_result_set_size]
67
58
 
68
59
  # Print a footer
69
60
  if page.include?(:total_result_set_size)
@@ -18,16 +18,16 @@
18
18
  # See the License for the specific language governing permissions and
19
19
  # limitations under the License.
20
20
  #
21
- # This example gets all orders for a given advertiser. The statement retrieves
22
- # up to the maximum page size limit of 500. To create orders, run
21
+ # This example gets all orders for a given advertiser. To create orders, run
23
22
  # create_orders.rb. To determine which companies are advertisers, run
24
23
  # get_companies_by_statement.rb.
25
24
  #
26
25
  # Tags: OrderService.getOrdersByStatement
27
26
 
28
27
  require 'dfp_api'
28
+ require 'dfp_api_statement'
29
29
 
30
- API_VERSION = :v201405
30
+ API_VERSION = :v201505
31
31
 
32
32
  def get_orders_by_statement()
33
33
  # Get DfpApi instance and load configuration from ~/dfp_api.yml.
@@ -44,23 +44,27 @@ def get_orders_by_statement()
44
44
  advertiser_id = 'INSERT_ADVERTISER_COMPANY_ID_HERE'.to_i
45
45
 
46
46
  # Create a statement to only select orders for a given advertiser.
47
- statement = {
48
- :query => 'WHERE advertiserId = :advertiser_id LIMIT 500',
49
- :values => [
47
+ statement = DfpApiStatement::FilterStatement.new(
48
+ 'WHERE advertiserId = :advertiser_id ORDER BY id ASC',
49
+ [
50
50
  {:key => 'advertiser_id',
51
51
  :value => {:value => advertiser_id, :xsi_type => 'NumberValue'}}
52
52
  ]
53
- }
53
+ )
54
54
 
55
- # Get orders by statement.
56
- page = order_service.get_orders_by_statement(statement)
55
+ begin
56
+ # Get orders by statement.
57
+ page = order_service.get_orders_by_statement(statement.toStatement())
57
58
 
58
- if page and page[:results]
59
- page[:results].each_with_index do |order, index|
60
- puts "%d) Order ID: %d, belongs to advertiser ID: %d, name: %s." % [index,
61
- order[:id], order[:advertiser_id], order[:name]]
59
+ if page and page[:results]
60
+ page[:results].each_with_index do |order, index|
61
+ puts "%d) Order ID: %d, belongs to advertiser ID: %d, name: %s." % [
62
+ index + statement.offset,
63
+ order[:id], order[:advertiser_id], order[:name]]
64
+ end
62
65
  end
63
- end
66
+ statement.offset += DfpApiStatement::SUGGESTED_PAGE_LIMIT
67
+ end while statement.offset < page[:total_result_set_size]
64
68
 
65
69
  # Print a footer.
66
70
  if page.include?(:total_result_set_size)
@@ -18,14 +18,15 @@
18
18
  # See the License for the specific language governing permissions and
19
19
  # limitations under the License.
20
20
  #
21
- # This example updates the notes of each order up to the first 500.
21
+ # This example updates the notes of a specific order.
22
22
  # To determine which orders exist, run get_all_orders.rb.
23
23
  #
24
24
  # Tags: OrderService.getOrdersByStatement, OrderService.updateOrders
25
25
 
26
26
  require 'dfp_api'
27
+ require 'dfp_api_statement'
27
28
 
28
- API_VERSION = :v201405
29
+ API_VERSION = :v201505
29
30
 
30
31
  def update_orders()
31
32
  # Get DfpApi instance and load configuration from ~/dfp_api.yml.
@@ -38,24 +39,31 @@ def update_orders()
38
39
  # Get the OrderService.
39
40
  order_service = dfp.service(:OrderService, API_VERSION)
40
41
 
42
+ order_id = 'INSERT_ORDER_ID_HERE'.to_i
43
+
41
44
  # Create a statement to get first 500 orders.
42
- statement = {:query => 'LIMIT 500'}
45
+ statement = DfpApiStatement::FilterStatement.new(
46
+ 'WHERE id = :id ORDER BY id ASC',
47
+ [
48
+ {:key => 'id',
49
+ :value => {:value => order_id, :xsi_type => 'NumberValue'}}
50
+ ],
51
+ 1
52
+ )
43
53
 
44
54
  # Get orders by statement.
45
- page = order_service.get_orders_by_statement(statement)
55
+ page = order_service.get_orders_by_statement(statement.toStatement())
46
56
 
47
57
  if page[:results]
48
58
  orders = page[:results]
49
59
 
50
- new_orders = orders.inject([]) do |new_orders, order|
60
+ orders.each do |order|
51
61
  # Archived orders can not be updated.
52
62
  if !order[:is_archived]
53
63
  order[:notes] = 'Spoke to advertiser. All is well.'
54
64
  # Workaround for issue #94.
55
65
  order[:po_number] = "" if order[:po_number].nil?
56
- new_orders << order
57
66
  end
58
- new_orders
59
67
  end
60
68
 
61
69
  # Update the orders on the server.
@@ -25,8 +25,9 @@
25
25
  # Tags: InventoryService.getAdUnitsByStatement
26
26
 
27
27
  require 'dfp_api'
28
+ require 'dfp_api_statement'
28
29
 
29
- API_VERSION = :v201405
30
+ API_VERSION = :v201505
30
31
 
31
32
  def create_placements()
32
33
  # Get DfpApi instance and load configuration from ~/dfp_api.yml.
@@ -64,7 +65,8 @@ def create_placements()
64
65
  }
65
66
 
66
67
  # Get the first 500 ad units.
67
- page = inventory_service.get_ad_units_by_statement({:query => 'LIMIT 500'})
68
+ page = inventory_service.get_ad_units_by_statement(
69
+ DfpApiStatement::FilterStatement.new('ORDER BY id ASC').toStatement())
68
70
 
69
71
  # Separate the ad units by size.
70
72
  if page and page[:results]
@@ -26,8 +26,7 @@
26
26
 
27
27
  require 'dfp_api'
28
28
 
29
- API_VERSION = :v201405
30
- PAGE_SIZE = 500
29
+ API_VERSION = :v201505
31
30
 
32
31
  def deactivate_placements()
33
32
  # Get DfpApi instance and load configuration from ~/dfp_api.yml.
@@ -40,50 +39,43 @@ def deactivate_placements()
40
39
  # Get the PlacementService.
41
40
  placement_service = dfp.service(:PlacementService, API_VERSION)
42
41
 
43
- # Create statement text and statement to select active placements.
44
- statement_text = 'WHERE status = :status'
45
- statement = {
46
- :values => [
42
+ # Create statement to select active placements.
43
+ statement = DfpApiStatement::FilterStatement.new(
44
+ 'WHERE status = :status',
45
+ [
47
46
  {:key => 'status',
48
47
  :value => {:value => 'ACTIVE', :xsi_type => 'TextValue'}}
49
48
  ]
50
- }
49
+ )
51
50
 
52
51
  # Define initial values.
53
- offset = 0
54
- page = {}
55
52
  placement_ids = []
56
53
 
57
54
  begin
58
- # Modify the statement to get one page with current offset.
59
- statement[:query] = statement_text +
60
- " LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]
61
-
62
55
  # Get placements by statement.
63
- page = placement_service.get_placements_by_statement(statement)
56
+ page = placement_service.get_placements_by_statement(
57
+ statement.toStatement())
64
58
 
65
59
  if page[:results]
66
- # Increase query offset by page size.
67
- offset += PAGE_SIZE
68
-
69
- page[:results].each do |placement|
60
+ page[:results].each_with_index do |placement, index|
70
61
  puts ("%d) Placement ID: %d, name: %s and status: %s will be " +
71
- "deactivated.") % [placement_ids.size, placement[:id],
62
+ "deactivated.") % [index + statement.offset, placement[:id],
72
63
  placement[:name], placement[:status]]
73
64
  placement_ids << placement[:id]
74
65
  end
75
66
  end
76
- end while offset < page[:total_result_set_size]
67
+ end while statement.offset < page[:total_result_set_size]
77
68
 
78
69
  puts "Number of placements to be deactivated: %d" % placement_ids.size
79
70
 
80
71
  if !placement_ids.empty?
81
72
  # Create a statement for action.
82
- statement = {:query => "WHERE id IN (%s)" % placement_ids.join(', ')}
73
+ statement = DfpApiStatement::FilterStatement.new(
74
+ "WHERE id IN (%s)" % placement_ids.join(', '))
83
75
 
84
76
  # Perform action.
85
77
  result = placement_service.perform_placement_action(
86
- {:xsi_type => 'DeactivatePlacements'}, statement)
78
+ {:xsi_type => 'DeactivatePlacements'}, statement.toStatement())
87
79
 
88
80
  # Display results.
89
81
  if result and result[:num_changes] > 0