square.rb 44.2.0.20251016 → 45.0.1.20260122

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 (499) hide show
  1. checksums.yaml +4 -4
  2. data/.fern/metadata.json +9 -0
  3. data/.fernignore +20 -0
  4. data/.rubocop.yml +60 -0
  5. data/LICENSE +1 -1
  6. data/Rakefile +29 -0
  7. data/custom.gemspec.rb +19 -0
  8. data/lib/square/apple_pay/client.rb +24 -10
  9. data/lib/square/bank_accounts/client.rb +144 -31
  10. data/lib/square/bank_accounts/types/create_bank_account_request.rb +13 -0
  11. data/lib/square/bank_accounts/types/disable_bank_account_request.rb +11 -0
  12. data/lib/square/bank_accounts/types/get_by_v_1_id_bank_accounts_request.rb +1 -1
  13. data/lib/square/bank_accounts/types/list_bank_accounts_request.rb +1 -0
  14. data/lib/square/bookings/client.rb +238 -100
  15. data/lib/square/bookings/custom_attribute_definitions/client.rb +139 -67
  16. data/lib/square/bookings/custom_attribute_definitions/types/create_booking_custom_attribute_definition_request.rb +1 -3
  17. data/lib/square/bookings/custom_attribute_definitions/types/update_booking_custom_attribute_definition_request.rb +1 -3
  18. data/lib/square/bookings/custom_attributes/client.rb +168 -76
  19. data/lib/square/bookings/custom_attributes/types/bulk_delete_booking_custom_attributes_request.rb +1 -3
  20. data/lib/square/bookings/custom_attributes/types/bulk_upsert_booking_custom_attributes_request.rb +1 -3
  21. data/lib/square/bookings/location_profiles/client.rb +44 -24
  22. data/lib/square/bookings/team_member_profiles/client.rb +66 -31
  23. data/lib/square/cards/client.rb +103 -45
  24. data/lib/square/cash_drawers/client.rb +3 -1
  25. data/lib/square/cash_drawers/shifts/client.rb +121 -61
  26. data/lib/square/catalog/client.rb +203 -91
  27. data/lib/square/catalog/images/client.rb +50 -20
  28. data/lib/square/catalog/object/client.rb +66 -29
  29. data/lib/square/catalog/object/types/delete_object_request.rb +1 -1
  30. data/lib/square/catalog/object/types/get_object_request.rb +1 -1
  31. data/lib/square/catalog/types/batch_upsert_catalog_objects_request.rb +1 -3
  32. data/lib/square/catalog/types/search_catalog_items_request.rb +3 -9
  33. data/lib/square/catalog/types/search_catalog_objects_request.rb +1 -3
  34. data/lib/square/channels/client.rb +85 -38
  35. data/lib/square/checkout/client.rb +77 -31
  36. data/lib/square/checkout/payment_links/client.rb +120 -54
  37. data/lib/square/client.rb +8 -10
  38. data/lib/square/customers/cards/client.rb +43 -16
  39. data/lib/square/customers/client.rb +220 -97
  40. data/lib/square/customers/custom_attribute_definitions/client.rb +157 -74
  41. data/lib/square/customers/custom_attribute_definitions/types/batch_upsert_customer_custom_attributes_request.rb +1 -3
  42. data/lib/square/customers/custom_attribute_definitions/types/create_customer_custom_attribute_definition_request.rb +1 -3
  43. data/lib/square/customers/custom_attribute_definitions/types/update_customer_custom_attribute_definition_request.rb +1 -3
  44. data/lib/square/customers/custom_attributes/client.rb +117 -53
  45. data/lib/square/customers/groups/client.rb +156 -67
  46. data/lib/square/customers/segments/client.rb +62 -31
  47. data/lib/square/customers/types/bulk_create_customers_request.rb +1 -3
  48. data/lib/square/customers/types/bulk_update_customers_request.rb +1 -3
  49. data/lib/square/devices/client.rb +66 -31
  50. data/lib/square/devices/codes/client.rb +83 -38
  51. data/lib/square/disputes/client.rb +140 -60
  52. data/lib/square/disputes/evidence/client.rb +83 -39
  53. data/lib/square/employees/client.rb +66 -31
  54. data/lib/square/events/client.rb +80 -38
  55. data/lib/square/file_param.rb +77 -77
  56. data/lib/square/gift_cards/activities/client.rb +73 -31
  57. data/lib/square/gift_cards/client.rb +163 -69
  58. data/lib/square/internal/http/base_request.rb +6 -0
  59. data/lib/square/internal/http/raw_client.rb +111 -20
  60. data/lib/square/internal/iterators/cursor_item_iterator.rb +28 -0
  61. data/lib/square/internal/iterators/cursor_page_iterator.rb +51 -0
  62. data/lib/square/internal/iterators/item_iterator.rb +65 -0
  63. data/lib/square/internal/iterators/offset_item_iterator.rb +30 -0
  64. data/lib/square/internal/iterators/offset_page_iterator.rb +83 -0
  65. data/lib/square/internal/json/request.rb +2 -1
  66. data/lib/square/internal/multipart/multipart_request.rb +2 -1
  67. data/lib/square/internal/types/enum.rb +8 -0
  68. data/lib/square/internal/types/model/field.rb +11 -1
  69. data/lib/square/internal/types/model.rb +14 -4
  70. data/lib/square/internal/types/union.rb +88 -7
  71. data/lib/square/internal/types/utils.rb +20 -4
  72. data/lib/square/inventory/client.rb +100 -76
  73. data/lib/square/invoices/client.rb +228 -99
  74. data/lib/square/labor/break_types/client.rb +120 -53
  75. data/lib/square/labor/client.rb +205 -81
  76. data/lib/square/labor/employee_wages/client.rb +64 -31
  77. data/lib/square/labor/shifts/client.rb +94 -37
  78. data/lib/square/labor/team_member_wages/client.rb +64 -31
  79. data/lib/square/labor/types/bulk_publish_scheduled_shifts_request.rb +2 -6
  80. data/lib/square/labor/types/publish_scheduled_shift_request.rb +1 -3
  81. data/lib/square/labor/workweek_configs/client.rb +65 -32
  82. data/lib/square/locations/client.rb +102 -41
  83. data/lib/square/locations/custom_attribute_definitions/client.rb +135 -64
  84. data/lib/square/locations/custom_attribute_definitions/types/create_location_custom_attribute_definition_request.rb +1 -3
  85. data/lib/square/locations/custom_attribute_definitions/types/update_location_custom_attribute_definition_request.rb +1 -3
  86. data/lib/square/locations/custom_attributes/client.rb +156 -68
  87. data/lib/square/locations/custom_attributes/types/bulk_delete_location_custom_attributes_request.rb +1 -3
  88. data/lib/square/locations/custom_attributes/types/bulk_upsert_location_custom_attributes_request.rb +1 -3
  89. data/lib/square/locations/transactions/client.rb +93 -37
  90. data/lib/square/locations/types/create_checkout_request.rb +1 -3
  91. data/lib/square/loyalty/accounts/client.rb +109 -44
  92. data/lib/square/loyalty/accounts/types/search_loyalty_accounts_request.rb +1 -3
  93. data/lib/square/loyalty/client.rb +20 -8
  94. data/lib/square/loyalty/programs/client.rb +72 -29
  95. data/lib/square/loyalty/programs/promotions/client.rb +106 -46
  96. data/lib/square/loyalty/rewards/client.rb +96 -38
  97. data/lib/square/loyalty/rewards/types/search_loyalty_rewards_request.rb +1 -3
  98. data/lib/square/merchants/client.rb +60 -31
  99. data/lib/square/merchants/custom_attribute_definitions/client.rb +137 -65
  100. data/lib/square/merchants/custom_attribute_definitions/types/create_merchant_custom_attribute_definition_request.rb +1 -3
  101. data/lib/square/merchants/custom_attribute_definitions/types/update_merchant_custom_attribute_definition_request.rb +1 -3
  102. data/lib/square/merchants/custom_attributes/client.rb +156 -68
  103. data/lib/square/merchants/custom_attributes/types/bulk_delete_merchant_custom_attributes_request.rb +1 -3
  104. data/lib/square/merchants/custom_attributes/types/bulk_upsert_merchant_custom_attributes_request.rb +1 -3
  105. data/lib/square/o_auth/client.rb +76 -31
  106. data/lib/square/o_auth/types/obtain_token_request.rb +1 -0
  107. data/lib/square/orders/client.rb +156 -63
  108. data/lib/square/orders/custom_attribute_definitions/client.rb +137 -65
  109. data/lib/square/orders/custom_attribute_definitions/types/create_order_custom_attribute_definition_request.rb +1 -3
  110. data/lib/square/orders/custom_attribute_definitions/types/update_order_custom_attribute_definition_request.rb +1 -3
  111. data/lib/square/orders/custom_attributes/client.rb +159 -69
  112. data/lib/square/orders/custom_attributes/types/bulk_delete_order_custom_attributes_request.rb +1 -3
  113. data/lib/square/orders/custom_attributes/types/bulk_upsert_order_custom_attributes_request.rb +1 -3
  114. data/lib/square/orders/types/calculate_order_request.rb +1 -3
  115. data/lib/square/payments/client.rb +182 -70
  116. data/lib/square/payouts/client.rb +116 -54
  117. data/lib/square/refunds/client.rb +97 -40
  118. data/lib/square/refunds/types/refund_payment_request.rb +1 -3
  119. data/lib/square/sites/client.rb +26 -11
  120. data/lib/square/snippets/client.rb +73 -28
  121. data/lib/square/subscriptions/client.rb +271 -117
  122. data/lib/square/team/client.rb +81 -36
  123. data/lib/square/team_members/client.rb +119 -49
  124. data/lib/square/team_members/types/batch_create_team_members_request.rb +1 -3
  125. data/lib/square/team_members/types/batch_update_team_members_request.rb +1 -3
  126. data/lib/square/team_members/wage_setting/client.rb +48 -19
  127. data/lib/square/terminal/actions/client.rb +75 -30
  128. data/lib/square/terminal/checkouts/client.rb +76 -30
  129. data/lib/square/terminal/client.rb +60 -23
  130. data/lib/square/terminal/refunds/client.rb +78 -31
  131. data/lib/square/transfer_orders/client.rb +26 -21
  132. data/lib/square/types/address.rb +2 -1
  133. data/lib/square/types/application_details.rb +1 -3
  134. data/lib/square/types/application_type.rb +23 -0
  135. data/lib/square/types/availability.rb +3 -4
  136. data/lib/square/types/bank_account.rb +1 -0
  137. data/lib/square/types/batch_create_team_members_response.rb +1 -3
  138. data/lib/square/types/batch_create_vendors_response.rb +1 -3
  139. data/lib/square/types/batch_get_catalog_objects_response.rb +1 -3
  140. data/lib/square/types/batch_get_vendors_response.rb +1 -3
  141. data/lib/square/types/batch_update_team_members_response.rb +1 -3
  142. data/lib/square/types/batch_update_vendors_response.rb +1 -3
  143. data/lib/square/types/batch_upsert_catalog_objects_response.rb +1 -3
  144. data/lib/square/types/batch_upsert_customer_custom_attributes_request_customer_custom_attribute_upsert_request.rb +2 -1
  145. data/lib/square/types/batch_upsert_customer_custom_attributes_response.rb +4 -4
  146. data/lib/square/types/batch_upsert_customer_custom_attributes_response_customer_custom_attribute_upsert_response.rb +3 -1
  147. data/lib/square/types/booking.rb +2 -6
  148. data/lib/square/types/booking_created_event.rb +2 -1
  149. data/lib/square/types/booking_custom_attribute_definition_visible_created_event.rb +2 -1
  150. data/lib/square/types/booking_custom_attribute_definition_visible_deleted_event.rb +2 -1
  151. data/lib/square/types/booking_custom_attribute_definition_visible_updated_event.rb +2 -1
  152. data/lib/square/types/booking_custom_attribute_delete_request.rb +4 -2
  153. data/lib/square/types/booking_custom_attribute_delete_response.rb +3 -1
  154. data/lib/square/types/booking_custom_attribute_upsert_request.rb +2 -1
  155. data/lib/square/types/booking_custom_attribute_upsert_response.rb +3 -1
  156. data/lib/square/types/booking_updated_event.rb +2 -1
  157. data/lib/square/types/bulk_create_customers_response.rb +1 -3
  158. data/lib/square/types/bulk_delete_booking_custom_attributes_response.rb +4 -4
  159. data/lib/square/types/bulk_delete_customers_response.rb +1 -3
  160. data/lib/square/types/bulk_delete_location_custom_attributes_request_location_custom_attribute_delete_request.rb +2 -1
  161. data/lib/square/types/bulk_delete_location_custom_attributes_response.rb +4 -4
  162. data/lib/square/types/bulk_delete_location_custom_attributes_response_location_custom_attribute_delete_response.rb +2 -1
  163. data/lib/square/types/bulk_delete_merchant_custom_attributes_request_merchant_custom_attribute_delete_request.rb +2 -1
  164. data/lib/square/types/bulk_delete_merchant_custom_attributes_response.rb +4 -4
  165. data/lib/square/types/bulk_delete_merchant_custom_attributes_response_merchant_custom_attribute_delete_response.rb +2 -1
  166. data/lib/square/types/bulk_delete_order_custom_attributes_response.rb +1 -3
  167. data/lib/square/types/bulk_publish_scheduled_shifts_response.rb +1 -3
  168. data/lib/square/types/bulk_retrieve_bookings_response.rb +1 -3
  169. data/lib/square/types/bulk_retrieve_channels_request_constants.rb +23 -0
  170. data/lib/square/types/bulk_retrieve_channels_response.rb +1 -3
  171. data/lib/square/types/bulk_retrieve_customers_response.rb +1 -3
  172. data/lib/square/types/bulk_retrieve_team_member_booking_profiles_response.rb +3 -4
  173. data/lib/square/types/bulk_update_customers_response.rb +1 -3
  174. data/lib/square/types/bulk_upsert_booking_custom_attributes_response.rb +4 -4
  175. data/lib/square/types/bulk_upsert_location_custom_attributes_request_location_custom_attribute_upsert_request.rb +2 -1
  176. data/lib/square/types/bulk_upsert_location_custom_attributes_response.rb +4 -4
  177. data/lib/square/types/bulk_upsert_location_custom_attributes_response_location_custom_attribute_upsert_response.rb +3 -1
  178. data/lib/square/types/bulk_upsert_merchant_custom_attributes_request_merchant_custom_attribute_upsert_request.rb +2 -1
  179. data/lib/square/types/bulk_upsert_merchant_custom_attributes_response.rb +4 -4
  180. data/lib/square/types/bulk_upsert_merchant_custom_attributes_response_merchant_custom_attribute_upsert_response.rb +3 -1
  181. data/lib/square/types/bulk_upsert_order_custom_attributes_response.rb +1 -3
  182. data/lib/square/types/business_appointment_settings.rb +4 -12
  183. data/lib/square/types/business_booking_profile.rb +2 -6
  184. data/lib/square/types/buy_now_pay_later_details.rb +1 -0
  185. data/lib/square/types/card.rb +2 -0
  186. data/lib/square/types/card_issuer_alert.rb +23 -0
  187. data/lib/square/types/catalog_category.rb +1 -3
  188. data/lib/square/types/catalog_custom_attribute_definition.rb +6 -18
  189. data/lib/square/types/catalog_custom_attribute_definition_selection_config.rb +1 -3
  190. data/lib/square/types/catalog_id_mapping.rb +1 -1
  191. data/lib/square/types/catalog_info_response.rb +1 -3
  192. data/lib/square/types/catalog_item.rb +6 -12
  193. data/lib/square/types/catalog_item_food_and_beverage_details.rb +2 -6
  194. data/lib/square/types/catalog_item_food_and_beverage_details_dietary_preference.rb +2 -6
  195. data/lib/square/types/catalog_item_food_and_beverage_details_ingredient.rb +2 -6
  196. data/lib/square/types/catalog_item_modifier_list_info.rb +6 -9
  197. data/lib/square/types/catalog_item_variation.rb +17 -13
  198. data/lib/square/types/catalog_modifier.rb +4 -4
  199. data/lib/square/types/catalog_modifier_list.rb +4 -2
  200. data/lib/square/types/catalog_modifier_override.rb +2 -2
  201. data/lib/square/types/catalog_modifier_toggle_override_type.rb +13 -0
  202. data/lib/square/types/catalog_object.rb +7 -3
  203. data/lib/square/types/catalog_object_base.rb +2 -4
  204. data/lib/square/types/catalog_object_category.rb +3 -4
  205. data/lib/square/types/catalog_object_custom_attribute_definition.rb +1 -3
  206. data/lib/square/types/catalog_object_quick_amounts_settings.rb +1 -3
  207. data/lib/square/types/catalog_object_reference.rb +1 -1
  208. data/lib/square/types/catalog_object_subscription_plan_variation.rb +1 -3
  209. data/lib/square/types/catalog_query.rb +11 -13
  210. data/lib/square/types/catalog_query_prefix.rb +2 -1
  211. data/lib/square/types/catalog_query_text.rb +2 -1
  212. data/lib/square/types/catalog_subscription_plan.rb +5 -5
  213. data/lib/square/types/catalog_subscription_plan_variation.rb +4 -2
  214. data/lib/square/types/catalog_v_1_id.rb +1 -1
  215. data/lib/square/types/catalog_version_updated_event_object.rb +1 -3
  216. data/lib/square/types/checkout.rb +1 -3
  217. data/lib/square/types/checkout_location_settings.rb +1 -3
  218. data/lib/square/types/checkout_location_settings_branding.rb +2 -6
  219. data/lib/square/types/checkout_merchant_settings.rb +1 -3
  220. data/lib/square/types/checkout_merchant_settings_payment_methods.rb +4 -12
  221. data/lib/square/types/checkout_merchant_settings_payment_methods_afterpay_clearpay.rb +2 -6
  222. data/lib/square/types/component.rb +4 -12
  223. data/lib/square/types/create_bank_account_response.rb +11 -0
  224. data/lib/square/types/create_booking_custom_attribute_definition_response.rb +4 -4
  225. data/lib/square/types/create_catalog_image_request.rb +1 -1
  226. data/lib/square/types/create_customer_custom_attribute_definition_response.rb +4 -4
  227. data/lib/square/types/create_location_custom_attribute_definition_response.rb +4 -4
  228. data/lib/square/types/create_merchant_custom_attribute_definition_response.rb +4 -4
  229. data/lib/square/types/create_order_custom_attribute_definition_response.rb +1 -3
  230. data/lib/square/types/create_transfer_order_data.rb +3 -4
  231. data/lib/square/types/create_webhook_subscription_response.rb +2 -1
  232. data/lib/square/types/custom_attribute.rb +1 -1
  233. data/lib/square/types/custom_attribute_definition.rb +1 -3
  234. data/lib/square/types/custom_attribute_definition_event_data_object.rb +1 -3
  235. data/lib/square/types/custom_field.rb +2 -1
  236. data/lib/square/types/customer_address_filter.rb +2 -1
  237. data/lib/square/types/customer_created_event.rb +4 -2
  238. data/lib/square/types/customer_created_event_event_context_merge.rb +2 -1
  239. data/lib/square/types/customer_creation_source_filter.rb +1 -3
  240. data/lib/square/types/customer_custom_attribute_filter.rb +2 -1
  241. data/lib/square/types/customer_custom_attribute_filter_value.rb +2 -1
  242. data/lib/square/types/customer_custom_attribute_filters.rb +7 -6
  243. data/lib/square/types/customer_custom_attribute_visible_updated_event.rb +6 -3
  244. data/lib/square/types/customer_deleted_event.rb +4 -2
  245. data/lib/square/types/customer_deleted_event_event_context_merge.rb +2 -1
  246. data/lib/square/types/customer_tax_ids.rb +4 -2
  247. data/lib/square/types/customer_updated_event.rb +4 -2
  248. data/lib/square/types/delete_booking_custom_attribute_definition_response.rb +5 -2
  249. data/lib/square/types/delete_booking_custom_attribute_response.rb +2 -1
  250. data/lib/square/types/delete_customer_custom_attribute_response.rb +2 -1
  251. data/lib/square/types/delete_location_custom_attribute_response.rb +2 -1
  252. data/lib/square/types/delete_merchant_custom_attribute_response.rb +2 -1
  253. data/lib/square/types/delete_subscription_action_response.rb +2 -1
  254. data/lib/square/types/delete_webhook_subscription_response.rb +2 -1
  255. data/lib/square/types/destination_details.rb +1 -3
  256. data/lib/square/types/device_checkout_options.rb +1 -0
  257. data/lib/square/types/device_component_details_ethernet_details.rb +1 -1
  258. data/lib/square/types/device_component_details_wi_fi_details.rb +1 -1
  259. data/lib/square/types/digital_wallet_details.rb +1 -0
  260. data/lib/square/types/disable_bank_account_response.rb +11 -0
  261. data/lib/square/types/dispute.rb +2 -1
  262. data/lib/square/types/dispute_evidence_added_event.rb +2 -1
  263. data/lib/square/types/dispute_evidence_created_event.rb +2 -1
  264. data/lib/square/types/employee_wage.rb +2 -1
  265. data/lib/square/types/error_code.rb +2 -0
  266. data/lib/square/types/event_data.rb +1 -3
  267. data/lib/square/types/fulfillment.rb +4 -7
  268. data/lib/square/types/fulfillment_delivery_details.rb +1 -3
  269. data/lib/square/types/fulfillment_pickup_details.rb +1 -3
  270. data/lib/square/types/get_bank_account_response.rb +1 -1
  271. data/lib/square/types/get_booking_request.rb +23 -0
  272. data/lib/square/types/get_business_booking_profile_request.rb +23 -0
  273. data/lib/square/types/get_card_request.rb +23 -0
  274. data/lib/square/types/get_catalog_object_response.rb +1 -3
  275. data/lib/square/types/get_customer_custom_attribute_definition_response.rb +4 -4
  276. data/lib/square/types/get_customer_custom_attribute_response.rb +2 -1
  277. data/lib/square/types/get_customer_group_request.rb +23 -0
  278. data/lib/square/types/get_customer_request.rb +23 -0
  279. data/lib/square/types/get_customer_segment_request.rb +23 -0
  280. data/lib/square/types/get_dispute_evidence_request.rb +23 -0
  281. data/lib/square/types/get_dispute_request.rb +23 -0
  282. data/lib/square/types/get_employee_request.rb +23 -0
  283. data/lib/square/types/get_gift_card_request.rb +23 -0
  284. data/lib/square/types/get_inventory_adjustment_request.rb +23 -0
  285. data/lib/square/types/get_inventory_physical_count_request.rb +23 -0
  286. data/lib/square/types/get_inventory_transfer_request.rb +23 -0
  287. data/lib/square/types/get_location_request.rb +23 -0
  288. data/lib/square/types/get_loyalty_account_request.rb +23 -0
  289. data/lib/square/types/get_loyalty_program_request.rb +23 -0
  290. data/lib/square/types/get_loyalty_promotion_request.rb +23 -0
  291. data/lib/square/types/get_loyalty_reward_request.rb +23 -0
  292. data/lib/square/types/get_merchant_request.rb +23 -0
  293. data/lib/square/types/get_order_request.rb +23 -0
  294. data/lib/square/types/get_payment_link_request.rb +23 -0
  295. data/lib/square/types/get_snippet_request.rb +23 -0
  296. data/lib/square/types/get_team_member_booking_profile_request.rb +23 -0
  297. data/lib/square/types/get_team_member_booking_profile_response.rb +1 -3
  298. data/lib/square/types/get_team_member_request.rb +23 -0
  299. data/lib/square/types/get_transaction_request.rb +23 -0
  300. data/lib/square/types/get_vendor_request.rb +23 -0
  301. data/lib/square/types/get_wage_setting_request.rb +23 -0
  302. data/lib/square/types/get_webhook_subscription_request.rb +23 -0
  303. data/lib/square/types/get_webhook_subscription_response.rb +2 -1
  304. data/lib/square/types/gift_card_activity.rb +8 -24
  305. data/lib/square/types/gift_card_activity_block_reason.rb +23 -0
  306. data/lib/square/types/gift_card_activity_unblock_reason.rb +23 -0
  307. data/lib/square/types/gift_card_activity_updated_event.rb +2 -1
  308. data/lib/square/types/inventory_count_updated_event_object.rb +1 -3
  309. data/lib/square/types/invoice.rb +6 -13
  310. data/lib/square/types/invoice_accepted_payment_methods.rb +2 -1
  311. data/lib/square/types/invoice_attachment.rb +1 -1
  312. data/lib/square/types/invoice_custom_field.rb +2 -1
  313. data/lib/square/types/invoice_payment_made_event.rb +2 -1
  314. data/lib/square/types/invoice_payment_request.rb +6 -8
  315. data/lib/square/types/invoice_refunded_event.rb +2 -1
  316. data/lib/square/types/invoice_sort_field.rb +23 -0
  317. data/lib/square/types/labor_scheduled_shift_created_event_object.rb +1 -1
  318. data/lib/square/types/labor_scheduled_shift_published_event_object.rb +1 -1
  319. data/lib/square/types/labor_scheduled_shift_updated_event_object.rb +1 -1
  320. data/lib/square/types/list_bank_accounts_response.rb +1 -1
  321. data/lib/square/types/list_booking_custom_attribute_definitions_response.rb +4 -4
  322. data/lib/square/types/list_booking_custom_attributes_response.rb +3 -4
  323. data/lib/square/types/list_cash_drawer_shift_events_response.rb +1 -3
  324. data/lib/square/types/list_cash_drawer_shifts_response.rb +1 -3
  325. data/lib/square/types/list_channels_request_constants.rb +23 -0
  326. data/lib/square/types/list_customer_custom_attribute_definitions_response.rb +4 -4
  327. data/lib/square/types/list_customer_custom_attributes_response.rb +3 -4
  328. data/lib/square/types/list_gift_card_activities_response.rb +1 -3
  329. data/lib/square/types/list_location_booking_profiles_response.rb +1 -3
  330. data/lib/square/types/list_location_custom_attribute_definitions_response.rb +4 -4
  331. data/lib/square/types/list_location_custom_attributes_response.rb +3 -4
  332. data/lib/square/types/list_loyalty_promotions_response.rb +1 -3
  333. data/lib/square/types/list_merchant_custom_attribute_definitions_response.rb +4 -4
  334. data/lib/square/types/list_merchant_custom_attributes_response.rb +3 -4
  335. data/lib/square/types/list_order_custom_attribute_definitions_response.rb +1 -3
  336. data/lib/square/types/list_order_custom_attributes_response.rb +1 -3
  337. data/lib/square/types/list_subscription_events_response.rb +1 -3
  338. data/lib/square/types/list_team_member_booking_profiles_response.rb +1 -3
  339. data/lib/square/types/list_team_member_wages_response.rb +1 -3
  340. data/lib/square/types/list_webhook_subscriptions_response.rb +1 -3
  341. data/lib/square/types/list_workweek_configs_response.rb +1 -3
  342. data/lib/square/types/location.rb +1 -3
  343. data/lib/square/types/location_booking_profile.rb +2 -1
  344. data/lib/square/types/location_custom_attribute_visible_updated_event.rb +6 -3
  345. data/lib/square/types/loyalty_account.rb +1 -3
  346. data/lib/square/types/loyalty_account_mapping_type.rb +23 -0
  347. data/lib/square/types/loyalty_event.rb +3 -4
  348. data/lib/square/types/loyalty_event_filter.rb +1 -3
  349. data/lib/square/types/loyalty_program.rb +4 -7
  350. data/lib/square/types/loyalty_program_accrual_rule.rb +3 -4
  351. data/lib/square/types/loyalty_program_reward_tier.rb +3 -1
  352. data/lib/square/types/loyalty_promotion_incentive.rb +2 -6
  353. data/lib/square/types/loyalty_promotion_incentive_points_addition_data.rb +2 -1
  354. data/lib/square/types/loyalty_promotion_incentive_points_multiplier_data.rb +2 -1
  355. data/lib/square/types/loyalty_promotion_trigger_limit.rb +2 -1
  356. data/lib/square/types/loyalty_reward.rb +4 -2
  357. data/lib/square/types/measurement_unit_generic.rb +23 -0
  358. data/lib/square/types/oauth_authorization_revoked_event_object.rb +1 -3
  359. data/lib/square/types/oauth_authorization_revoked_event_revocation_object.rb +1 -3
  360. data/lib/square/types/order.rb +2 -6
  361. data/lib/square/types/order_card_surcharge_treatment_type.rb +12 -0
  362. data/lib/square/types/order_custom_attribute_definition_owned_created_event.rb +2 -1
  363. data/lib/square/types/order_custom_attribute_definition_owned_deleted_event.rb +2 -1
  364. data/lib/square/types/order_custom_attribute_definition_owned_updated_event.rb +2 -1
  365. data/lib/square/types/order_custom_attribute_definition_visible_created_event.rb +2 -1
  366. data/lib/square/types/order_custom_attribute_definition_visible_deleted_event.rb +2 -1
  367. data/lib/square/types/order_custom_attribute_definition_visible_updated_event.rb +2 -1
  368. data/lib/square/types/order_custom_attribute_owned_deleted_event.rb +2 -1
  369. data/lib/square/types/order_custom_attribute_owned_updated_event.rb +2 -1
  370. data/lib/square/types/order_custom_attribute_visible_deleted_event.rb +2 -1
  371. data/lib/square/types/order_custom_attribute_visible_updated_event.rb +2 -1
  372. data/lib/square/types/order_fulfillment_updated.rb +1 -3
  373. data/lib/square/types/order_line_item.rb +4 -12
  374. data/lib/square/types/order_line_item_applied_tax.rb +1 -0
  375. data/lib/square/types/order_line_item_pricing_blocklists.rb +3 -6
  376. data/lib/square/types/order_line_item_pricing_blocklists_blocked_service_charge.rb +14 -0
  377. data/lib/square/types/order_return.rb +3 -9
  378. data/lib/square/types/order_return_line_item.rb +4 -12
  379. data/lib/square/types/order_return_service_charge.rb +3 -6
  380. data/lib/square/types/order_service_charge.rb +2 -6
  381. data/lib/square/types/payment.rb +1 -3
  382. data/lib/square/types/payment_link_related_resources.rb +1 -3
  383. data/lib/square/types/payment_refund.rb +1 -3
  384. data/lib/square/types/payout_entry.rb +24 -72
  385. data/lib/square/types/pre_populated_data.rb +2 -1
  386. data/lib/square/types/product_type.rb +23 -0
  387. data/lib/square/types/refund.rb +1 -3
  388. data/lib/square/types/retrieve_booking_custom_attribute_definition_response.rb +4 -4
  389. data/lib/square/types/retrieve_booking_custom_attribute_response.rb +2 -1
  390. data/lib/square/types/retrieve_location_custom_attribute_definition_response.rb +4 -4
  391. data/lib/square/types/retrieve_location_custom_attribute_response.rb +2 -1
  392. data/lib/square/types/retrieve_merchant_custom_attribute_definition_response.rb +4 -4
  393. data/lib/square/types/retrieve_merchant_custom_attribute_response.rb +2 -1
  394. data/lib/square/types/retrieve_order_custom_attribute_definition_response.rb +1 -3
  395. data/lib/square/types/scheduled_shift_filter.rb +3 -7
  396. data/lib/square/types/scheduled_shift_workday.rb +1 -3
  397. data/lib/square/types/search_availability_filter.rb +1 -3
  398. data/lib/square/types/search_catalog_items_response.rb +2 -1
  399. data/lib/square/types/search_catalog_objects_response.rb +1 -3
  400. data/lib/square/types/search_events_sort_field.rb +23 -0
  401. data/lib/square/types/search_loyalty_accounts_request_loyalty_account_query.rb +1 -3
  402. data/lib/square/types/search_loyalty_accounts_response.rb +1 -3
  403. data/lib/square/types/search_orders_date_time_filter.rb +2 -1
  404. data/lib/square/types/search_orders_fulfillment_filter.rb +2 -6
  405. data/lib/square/types/search_orders_source_filter.rb +2 -0
  406. data/lib/square/types/search_scheduled_shifts_response.rb +1 -3
  407. data/lib/square/types/search_transfer_orders_response.rb +1 -3
  408. data/lib/square/types/shift_filter.rb +3 -2
  409. data/lib/square/types/shift_query.rb +2 -1
  410. data/lib/square/types/shift_sort.rb +2 -1
  411. data/lib/square/types/shift_wage.rb +2 -1
  412. data/lib/square/types/shift_workday.rb +2 -1
  413. data/lib/square/types/snippet.rb +2 -1
  414. data/lib/square/types/standard_unit_description_group.rb +1 -3
  415. data/lib/square/types/subscription_event.rb +1 -3
  416. data/lib/square/types/subscription_phase.rb +2 -1
  417. data/lib/square/types/subscription_test_result.rb +5 -3
  418. data/lib/square/types/team_member_assigned_locations.rb +1 -3
  419. data/lib/square/types/team_member_booking_profile.rb +2 -1
  420. data/lib/square/types/tender.rb +2 -6
  421. data/lib/square/types/tender_buy_now_pay_later_details.rb +1 -3
  422. data/lib/square/types/terminal_refund.rb +2 -1
  423. data/lib/square/types/test_webhook_subscription_response.rb +5 -5
  424. data/lib/square/types/timecard_filter.rb +1 -1
  425. data/lib/square/types/transfer_order.rb +1 -3
  426. data/lib/square/types/transfer_order_filter.rb +1 -3
  427. data/lib/square/types/transfer_order_goods_receipt.rb +1 -3
  428. data/lib/square/types/update_booking_custom_attribute_definition_response.rb +4 -4
  429. data/lib/square/types/update_customer_custom_attribute_definition_response.rb +4 -4
  430. data/lib/square/types/update_location_custom_attribute_definition_response.rb +4 -4
  431. data/lib/square/types/update_merchant_custom_attribute_definition_response.rb +4 -4
  432. data/lib/square/types/update_order_custom_attribute_definition_response.rb +1 -3
  433. data/lib/square/types/update_transfer_order_data.rb +1 -3
  434. data/lib/square/types/update_webhook_subscription_response.rb +2 -1
  435. data/lib/square/types/update_webhook_subscription_signature_key_response.rb +3 -1
  436. data/lib/square/types/upsert_booking_custom_attribute_response.rb +2 -1
  437. data/lib/square/types/upsert_catalog_object_response.rb +1 -3
  438. data/lib/square/types/upsert_customer_custom_attribute_response.rb +2 -1
  439. data/lib/square/types/upsert_location_custom_attribute_response.rb +2 -1
  440. data/lib/square/types/upsert_merchant_custom_attribute_response.rb +2 -1
  441. data/lib/square/types/v_1_get_payment_request.rb +23 -0
  442. data/lib/square/types/v_1_get_settlement_request.rb +23 -0
  443. data/lib/square/types/v_1_order.rb +1 -3
  444. data/lib/square/types/vendor_created_event_object_operation.rb +23 -0
  445. data/lib/square/types/vendor_updated_event_object_operation.rb +23 -0
  446. data/lib/square/types/wage_setting.rb +1 -3
  447. data/lib/square/v_1_transactions/client.rb +72 -29
  448. data/lib/square/vendors/client.rb +126 -51
  449. data/lib/square/vendors/types/batch_update_vendors_request.rb +1 -3
  450. data/lib/square/version.rb +1 -1
  451. data/lib/square/webhooks/client.rb +3 -1
  452. data/lib/square/webhooks/event_types/client.rb +25 -14
  453. data/lib/square/webhooks/subscriptions/client.rb +164 -69
  454. data/lib/square.rb +57 -5
  455. data/lib/square_legacy/utilities/webhooks_helper.rb +1 -1
  456. data/reference.md +29588 -0
  457. data/wiremock/docker-compose.test.yml +14 -0
  458. data/wiremock/wiremock-mappings.json +1 -0
  459. metadata +69 -45
  460. data/lib/square/mobile/client.rb +0 -50
  461. data/lib/square/mobile/types/create_mobile_authorization_code_request.rb +0 -11
  462. data/lib/square/types/create_mobile_authorization_code_response.rb +0 -13
  463. data/test/square/integration/client_tests/test_cash_drawers.rb +0 -27
  464. data/test/square/integration/client_tests/test_catalog.rb +0 -704
  465. data/test/square/integration/client_tests/test_customers.rb +0 -65
  466. data/test/square/integration/client_tests/test_customers_groups.rb +0 -144
  467. data/test/square/integration/client_tests/test_customers_segments.rb +0 -36
  468. data/test/square/integration/client_tests/test_devices.rb +0 -67
  469. data/test/square/integration/client_tests/test_inventory.rb +0 -28
  470. data/test/square/integration/client_tests/test_locations.rb +0 -18
  471. data/test/square/integration/client_tests/test_merchants.rb +0 -40
  472. data/test/square/integration/client_tests/test_mobile.rb +0 -21
  473. data/test/square/integration/client_tests/test_orders.rb +0 -177
  474. data/test/square/integration/client_tests/test_payments.rb +0 -167
  475. data/test/square/integration/client_tests/test_refunds.rb +0 -133
  476. data/test/square/integration/client_tests/test_team_members.rb +0 -97
  477. data/test/square/integration/client_tests/test_terminal.rb +0 -107
  478. data/test/square/integration/integration_test_base.rb +0 -16
  479. data/test/square/integration/testdata/image.jpeg +0 -0
  480. data/test/square/internal/multipart/test_form_data.rb +0 -311
  481. data/test/square/internal/types/test_array.rb +0 -37
  482. data/test/square/internal/types/test_boolean.rb +0 -35
  483. data/test/square/internal/types/test_enum.rb +0 -42
  484. data/test/square/internal/types/test_hash.rb +0 -50
  485. data/test/square/internal/types/test_model.rb +0 -105
  486. data/test/square/internal/types/test_union.rb +0 -52
  487. data/test/square/internal/types/test_utils.rb +0 -216
  488. data/test/square_legacy/api/api_test_base.rb +0 -27
  489. data/test/square_legacy/api/test_catalog_api.rb +0 -57
  490. data/test/square_legacy/api/test_customers_api.rb +0 -43
  491. data/test/square_legacy/api/test_employees_api.rb +0 -34
  492. data/test/square_legacy/api/test_labor_api.rb +0 -82
  493. data/test/square_legacy/api/test_locations_api.rb +0 -22
  494. data/test/square_legacy/api/test_merchants_api.rb +0 -38
  495. data/test/square_legacy/api/test_payments_api.rb +0 -40
  496. data/test/square_legacy/api/test_refunds_api.rb +0 -42
  497. data/test/square_legacy/http_response_catcher.rb +0 -14
  498. data/test/square_legacy/webhooks/test_webhooks_helper.rb +0 -153
  499. data/test/test_helper.rb +0 -123
@@ -5,7 +5,9 @@ module Square
5
5
  module Programs
6
6
  module Promotions
7
7
  class Client
8
- # @return [Square::Loyalty::Programs::Promotions::Client]
8
+ # @param client [Square::Internal::Http::RawClient]
9
+ #
10
+ # @return [void]
9
11
  def initialize(client:)
10
12
  @client = client
11
13
  end
@@ -13,32 +15,53 @@ module Square
13
15
  # Lists the loyalty promotions associated with a [loyalty program](entity:LoyaltyProgram).
14
16
  # Results are sorted by the `created_at` date in descending order (newest to oldest).
15
17
  #
18
+ # @param request_options [Hash]
19
+ # @param params [Hash]
20
+ # @option request_options [String] :base_url
21
+ # @option request_options [Hash{String => Object}] :additional_headers
22
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
23
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
24
+ # @option request_options [Integer] :timeout_in_seconds
25
+ # @option params [String] :program_id
26
+ # @option params [Square::Types::LoyaltyPromotionStatus, nil] :status
27
+ # @option params [String, nil] :cursor
28
+ # @option params [Integer, nil] :limit
29
+ #
16
30
  # @return [Square::Types::ListLoyaltyPromotionsResponse]
17
31
  def list(request_options: {}, **params)
18
- _query_param_names = [
19
- %w[status cursor limit],
20
- %i[status cursor limit]
21
- ].flatten
22
- _query = params.slice(*_query_param_names)
23
- params = params.except(*_query_param_names)
32
+ params = Square::Internal::Types::Utils.normalize_keys(params)
33
+ query_param_names = %i[status cursor limit]
34
+ query_params = {}
35
+ query_params["status"] = params[:status] if params.key?(:status)
36
+ query_params["cursor"] = params[:cursor] if params.key?(:cursor)
37
+ query_params["limit"] = params[:limit] if params.key?(:limit)
38
+ params = params.except(*query_param_names)
24
39
 
25
- _request = Square::Internal::JSON::Request.new(
26
- base_url: request_options[:base_url] || Square::Environment::PRODUCTION,
27
- method: "GET",
28
- path: "v2/loyalty/programs/#{params[:program_id]}/promotions",
29
- query: _query
30
- )
31
- begin
32
- _response = @client.send(_request)
33
- rescue Net::HTTPRequestTimeout
34
- raise Square::Errors::TimeoutError
35
- end
36
- code = _response.code.to_i
37
- if code.between?(200, 299)
38
- Square::Types::ListLoyaltyPromotionsResponse.load(_response.body)
39
- else
40
- error_class = Square::Errors::ResponseError.subclass_for_code(code)
41
- raise error_class.new(_response.body, code: code)
40
+ Square::Internal::CursorItemIterator.new(
41
+ cursor_field: :cursor,
42
+ item_field: :loyalty_promotions,
43
+ initial_cursor: query_params[:cursor]
44
+ ) do |next_cursor|
45
+ query_params[:cursor] = next_cursor
46
+ request = Square::Internal::JSON::Request.new(
47
+ base_url: request_options[:base_url],
48
+ method: "GET",
49
+ path: "v2/loyalty/programs/#{params[:program_id]}/promotions",
50
+ query: query_params,
51
+ request_options: request_options
52
+ )
53
+ begin
54
+ response = @client.send(request)
55
+ rescue Net::HTTPRequestTimeout
56
+ raise Square::Errors::TimeoutError
57
+ end
58
+ code = response.code.to_i
59
+ if code.between?(200, 299)
60
+ Square::Types::ListLoyaltyPromotionsResponse.load(response.body)
61
+ else
62
+ error_class = Square::Errors::ResponseError.subclass_for_code(code)
63
+ raise error_class.new(response.body, code: code)
64
+ end
42
65
  end
43
66
  end
44
67
 
@@ -49,50 +72,75 @@ module Square
49
72
  # `available_time` setting. A loyalty program can have a maximum of 10 loyalty promotions with an
50
73
  # `ACTIVE` or `SCHEDULED` status.
51
74
  #
75
+ # @param request_options [Hash]
76
+ # @param params [Square::Loyalty::Programs::Promotions::Types::CreateLoyaltyPromotionRequest]
77
+ # @option request_options [String] :base_url
78
+ # @option request_options [Hash{String => Object}] :additional_headers
79
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
80
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
81
+ # @option request_options [Integer] :timeout_in_seconds
82
+ # @option params [String] :program_id
83
+ #
52
84
  # @return [Square::Types::CreateLoyaltyPromotionResponse]
53
85
  def create(request_options: {}, **params)
54
- _path_param_names = ["program_id"]
86
+ params = Square::Internal::Types::Utils.normalize_keys(params)
87
+ request_data = Square::Loyalty::Programs::Promotions::Types::CreateLoyaltyPromotionRequest.new(params).to_h
88
+ non_body_param_names = ["program_id"]
89
+ body = request_data.except(*non_body_param_names)
55
90
 
56
- _request = Square::Internal::JSON::Request.new(
57
- base_url: request_options[:base_url] || Square::Environment::PRODUCTION,
91
+ request = Square::Internal::JSON::Request.new(
92
+ base_url: request_options[:base_url],
58
93
  method: "POST",
59
94
  path: "v2/loyalty/programs/#{params[:program_id]}/promotions",
60
- body: params.except(*_path_param_names)
95
+ body: body,
96
+ request_options: request_options
61
97
  )
62
98
  begin
63
- _response = @client.send(_request)
99
+ response = @client.send(request)
64
100
  rescue Net::HTTPRequestTimeout
65
101
  raise Square::Errors::TimeoutError
66
102
  end
67
- code = _response.code.to_i
103
+ code = response.code.to_i
68
104
  if code.between?(200, 299)
69
- Square::Types::CreateLoyaltyPromotionResponse.load(_response.body)
105
+ Square::Types::CreateLoyaltyPromotionResponse.load(response.body)
70
106
  else
71
107
  error_class = Square::Errors::ResponseError.subclass_for_code(code)
72
- raise error_class.new(_response.body, code: code)
108
+ raise error_class.new(response.body, code: code)
73
109
  end
74
110
  end
75
111
 
76
112
  # Retrieves a loyalty promotion.
77
113
  #
114
+ # @param request_options [Hash]
115
+ # @param params [Hash]
116
+ # @option request_options [String] :base_url
117
+ # @option request_options [Hash{String => Object}] :additional_headers
118
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
119
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
120
+ # @option request_options [Integer] :timeout_in_seconds
121
+ # @option params [String] :program_id
122
+ # @option params [String] :promotion_id
123
+ #
78
124
  # @return [Square::Types::GetLoyaltyPromotionResponse]
79
125
  def get(request_options: {}, **params)
80
- _request = Square::Internal::JSON::Request.new(
81
- base_url: request_options[:base_url] || Square::Environment::PRODUCTION,
126
+ params = Square::Internal::Types::Utils.normalize_keys(params)
127
+ request = Square::Internal::JSON::Request.new(
128
+ base_url: request_options[:base_url],
82
129
  method: "GET",
83
- path: "v2/loyalty/programs/#{params[:program_id]}/promotions/#{params[:promotion_id]}"
130
+ path: "v2/loyalty/programs/#{params[:program_id]}/promotions/#{params[:promotion_id]}",
131
+ request_options: request_options
84
132
  )
85
133
  begin
86
- _response = @client.send(_request)
134
+ response = @client.send(request)
87
135
  rescue Net::HTTPRequestTimeout
88
136
  raise Square::Errors::TimeoutError
89
137
  end
90
- code = _response.code.to_i
138
+ code = response.code.to_i
91
139
  if code.between?(200, 299)
92
- Square::Types::GetLoyaltyPromotionResponse.load(_response.body)
140
+ Square::Types::GetLoyaltyPromotionResponse.load(response.body)
93
141
  else
94
142
  error_class = Square::Errors::ResponseError.subclass_for_code(code)
95
- raise error_class.new(_response.body, code: code)
143
+ raise error_class.new(response.body, code: code)
96
144
  end
97
145
  end
98
146
 
@@ -103,24 +151,36 @@ module Square
103
151
  #
104
152
  # This endpoint sets the loyalty promotion to the `CANCELED` state
105
153
  #
154
+ # @param request_options [Hash]
155
+ # @param params [Hash]
156
+ # @option request_options [String] :base_url
157
+ # @option request_options [Hash{String => Object}] :additional_headers
158
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
159
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
160
+ # @option request_options [Integer] :timeout_in_seconds
161
+ # @option params [String] :program_id
162
+ # @option params [String] :promotion_id
163
+ #
106
164
  # @return [Square::Types::CancelLoyaltyPromotionResponse]
107
165
  def cancel(request_options: {}, **params)
108
- _request = Square::Internal::JSON::Request.new(
109
- base_url: request_options[:base_url] || Square::Environment::PRODUCTION,
166
+ params = Square::Internal::Types::Utils.normalize_keys(params)
167
+ request = Square::Internal::JSON::Request.new(
168
+ base_url: request_options[:base_url],
110
169
  method: "POST",
111
- path: "v2/loyalty/programs/#{params[:program_id]}/promotions/#{params[:promotion_id]}/cancel"
170
+ path: "v2/loyalty/programs/#{params[:program_id]}/promotions/#{params[:promotion_id]}/cancel",
171
+ request_options: request_options
112
172
  )
113
173
  begin
114
- _response = @client.send(_request)
174
+ response = @client.send(request)
115
175
  rescue Net::HTTPRequestTimeout
116
176
  raise Square::Errors::TimeoutError
117
177
  end
118
- code = _response.code.to_i
178
+ code = response.code.to_i
119
179
  if code.between?(200, 299)
120
- Square::Types::CancelLoyaltyPromotionResponse.load(_response.body)
180
+ Square::Types::CancelLoyaltyPromotionResponse.load(response.body)
121
181
  else
122
182
  error_class = Square::Errors::ResponseError.subclass_for_code(code)
123
- raise error_class.new(_response.body, code: code)
183
+ raise error_class.new(response.body, code: code)
124
184
  end
125
185
  end
126
186
  end
@@ -4,7 +4,9 @@ module Square
4
4
  module Loyalty
5
5
  module Rewards
6
6
  class Client
7
- # @return [Square::Loyalty::Rewards::Client]
7
+ # @param client [Square::Internal::Http::RawClient]
8
+ #
9
+ # @return [void]
8
10
  def initialize(client:)
9
11
  @client = client
10
12
  end
@@ -18,29 +20,40 @@ module Square
18
20
  # After a reward is created, the points are locked and
19
21
  # not available for the buyer to redeem another reward.
20
22
  #
23
+ # @param request_options [Hash]
24
+ # @param params [Square::Loyalty::Rewards::Types::CreateLoyaltyRewardRequest]
25
+ # @option request_options [String] :base_url
26
+ # @option request_options [Hash{String => Object}] :additional_headers
27
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
28
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
29
+ # @option request_options [Integer] :timeout_in_seconds
30
+ #
21
31
  # @return [Square::Types::CreateLoyaltyRewardResponse]
22
32
  def create(request_options: {}, **params)
23
- _request = Square::Internal::JSON::Request.new(
24
- base_url: request_options[:base_url] || Square::Environment::PRODUCTION,
33
+ params = Square::Internal::Types::Utils.normalize_keys(params)
34
+ request = Square::Internal::JSON::Request.new(
35
+ base_url: request_options[:base_url],
25
36
  method: "POST",
26
37
  path: "v2/loyalty/rewards",
27
- body: params
38
+ body: Square::Loyalty::Rewards::Types::CreateLoyaltyRewardRequest.new(params).to_h,
39
+ request_options: request_options
28
40
  )
29
41
  begin
30
- _response = @client.send(_request)
42
+ response = @client.send(request)
31
43
  rescue Net::HTTPRequestTimeout
32
44
  raise Square::Errors::TimeoutError
33
45
  end
34
- code = _response.code.to_i
46
+ code = response.code.to_i
35
47
  if code.between?(200, 299)
36
- Square::Types::CreateLoyaltyRewardResponse.load(_response.body)
48
+ Square::Types::CreateLoyaltyRewardResponse.load(response.body)
37
49
  else
38
50
  error_class = Square::Errors::ResponseError.subclass_for_code(code)
39
- raise error_class.new(_response.body, code: code)
51
+ raise error_class.new(response.body, code: code)
40
52
  end
41
53
  end
42
54
 
43
- # Searches for loyalty rewards. This endpoint accepts a request with no query filters and returns results for all loyalty accounts.
55
+ # Searches for loyalty rewards. This endpoint accepts a request with no query filters and returns results for
56
+ # all loyalty accounts.
44
57
  # If you include a `query` object, `loyalty_account_id` is required and `status` is optional.
45
58
  #
46
59
  # If you know a reward ID, use the
@@ -48,48 +61,69 @@ module Square
48
61
  #
49
62
  # Search results are sorted by `updated_at` in descending order.
50
63
  #
64
+ # @param request_options [Hash]
65
+ # @param params [Square::Loyalty::Rewards::Types::SearchLoyaltyRewardsRequest]
66
+ # @option request_options [String] :base_url
67
+ # @option request_options [Hash{String => Object}] :additional_headers
68
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
69
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
70
+ # @option request_options [Integer] :timeout_in_seconds
71
+ #
51
72
  # @return [Square::Types::SearchLoyaltyRewardsResponse]
52
73
  def search(request_options: {}, **params)
53
- _request = Square::Internal::JSON::Request.new(
54
- base_url: request_options[:base_url] || Square::Environment::PRODUCTION,
74
+ params = Square::Internal::Types::Utils.normalize_keys(params)
75
+ request = Square::Internal::JSON::Request.new(
76
+ base_url: request_options[:base_url],
55
77
  method: "POST",
56
78
  path: "v2/loyalty/rewards/search",
57
- body: params
79
+ body: Square::Loyalty::Rewards::Types::SearchLoyaltyRewardsRequest.new(params).to_h,
80
+ request_options: request_options
58
81
  )
59
82
  begin
60
- _response = @client.send(_request)
83
+ response = @client.send(request)
61
84
  rescue Net::HTTPRequestTimeout
62
85
  raise Square::Errors::TimeoutError
63
86
  end
64
- code = _response.code.to_i
87
+ code = response.code.to_i
65
88
  if code.between?(200, 299)
66
- Square::Types::SearchLoyaltyRewardsResponse.load(_response.body)
89
+ Square::Types::SearchLoyaltyRewardsResponse.load(response.body)
67
90
  else
68
91
  error_class = Square::Errors::ResponseError.subclass_for_code(code)
69
- raise error_class.new(_response.body, code: code)
92
+ raise error_class.new(response.body, code: code)
70
93
  end
71
94
  end
72
95
 
73
96
  # Retrieves a loyalty reward.
74
97
  #
98
+ # @param request_options [Hash]
99
+ # @param params [Hash]
100
+ # @option request_options [String] :base_url
101
+ # @option request_options [Hash{String => Object}] :additional_headers
102
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
103
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
104
+ # @option request_options [Integer] :timeout_in_seconds
105
+ # @option params [String] :reward_id
106
+ #
75
107
  # @return [Square::Types::GetLoyaltyRewardResponse]
76
108
  def get(request_options: {}, **params)
77
- _request = Square::Internal::JSON::Request.new(
78
- base_url: request_options[:base_url] || Square::Environment::PRODUCTION,
109
+ params = Square::Internal::Types::Utils.normalize_keys(params)
110
+ request = Square::Internal::JSON::Request.new(
111
+ base_url: request_options[:base_url],
79
112
  method: "GET",
80
- path: "v2/loyalty/rewards/#{params[:reward_id]}"
113
+ path: "v2/loyalty/rewards/#{params[:reward_id]}",
114
+ request_options: request_options
81
115
  )
82
116
  begin
83
- _response = @client.send(_request)
117
+ response = @client.send(request)
84
118
  rescue Net::HTTPRequestTimeout
85
119
  raise Square::Errors::TimeoutError
86
120
  end
87
- code = _response.code.to_i
121
+ code = response.code.to_i
88
122
  if code.between?(200, 299)
89
- Square::Types::GetLoyaltyRewardResponse.load(_response.body)
123
+ Square::Types::GetLoyaltyRewardResponse.load(response.body)
90
124
  else
91
125
  error_class = Square::Errors::ResponseError.subclass_for_code(code)
92
- raise error_class.new(_response.body, code: code)
126
+ raise error_class.new(response.body, code: code)
93
127
  end
94
128
  end
95
129
 
@@ -103,24 +137,35 @@ module Square
103
137
  #
104
138
  # You cannot delete a reward that has reached the terminal state (REDEEMED).
105
139
  #
140
+ # @param request_options [Hash]
141
+ # @param params [Hash]
142
+ # @option request_options [String] :base_url
143
+ # @option request_options [Hash{String => Object}] :additional_headers
144
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
145
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
146
+ # @option request_options [Integer] :timeout_in_seconds
147
+ # @option params [String] :reward_id
148
+ #
106
149
  # @return [Square::Types::DeleteLoyaltyRewardResponse]
107
150
  def delete(request_options: {}, **params)
108
- _request = Square::Internal::JSON::Request.new(
109
- base_url: request_options[:base_url] || Square::Environment::PRODUCTION,
151
+ params = Square::Internal::Types::Utils.normalize_keys(params)
152
+ request = Square::Internal::JSON::Request.new(
153
+ base_url: request_options[:base_url],
110
154
  method: "DELETE",
111
- path: "v2/loyalty/rewards/#{params[:reward_id]}"
155
+ path: "v2/loyalty/rewards/#{params[:reward_id]}",
156
+ request_options: request_options
112
157
  )
113
158
  begin
114
- _response = @client.send(_request)
159
+ response = @client.send(request)
115
160
  rescue Net::HTTPRequestTimeout
116
161
  raise Square::Errors::TimeoutError
117
162
  end
118
- code = _response.code.to_i
163
+ code = response.code.to_i
119
164
  if code.between?(200, 299)
120
- Square::Types::DeleteLoyaltyRewardResponse.load(_response.body)
165
+ Square::Types::DeleteLoyaltyRewardResponse.load(response.body)
121
166
  else
122
167
  error_class = Square::Errors::ResponseError.subclass_for_code(code)
123
- raise error_class.new(_response.body, code: code)
168
+ raise error_class.new(response.body, code: code)
124
169
  end
125
170
  end
126
171
 
@@ -136,27 +181,40 @@ module Square
136
181
  # In other words, points used for the reward cannot be returned
137
182
  # to the account.
138
183
  #
184
+ # @param request_options [Hash]
185
+ # @param params [Square::Loyalty::Rewards::Types::RedeemLoyaltyRewardRequest]
186
+ # @option request_options [String] :base_url
187
+ # @option request_options [Hash{String => Object}] :additional_headers
188
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
189
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
190
+ # @option request_options [Integer] :timeout_in_seconds
191
+ # @option params [String] :reward_id
192
+ #
139
193
  # @return [Square::Types::RedeemLoyaltyRewardResponse]
140
194
  def redeem(request_options: {}, **params)
141
- _path_param_names = ["reward_id"]
195
+ params = Square::Internal::Types::Utils.normalize_keys(params)
196
+ request_data = Square::Loyalty::Rewards::Types::RedeemLoyaltyRewardRequest.new(params).to_h
197
+ non_body_param_names = ["reward_id"]
198
+ body = request_data.except(*non_body_param_names)
142
199
 
143
- _request = Square::Internal::JSON::Request.new(
144
- base_url: request_options[:base_url] || Square::Environment::PRODUCTION,
200
+ request = Square::Internal::JSON::Request.new(
201
+ base_url: request_options[:base_url],
145
202
  method: "POST",
146
203
  path: "v2/loyalty/rewards/#{params[:reward_id]}/redeem",
147
- body: params.except(*_path_param_names)
204
+ body: body,
205
+ request_options: request_options
148
206
  )
149
207
  begin
150
- _response = @client.send(_request)
208
+ response = @client.send(request)
151
209
  rescue Net::HTTPRequestTimeout
152
210
  raise Square::Errors::TimeoutError
153
211
  end
154
- code = _response.code.to_i
212
+ code = response.code.to_i
155
213
  if code.between?(200, 299)
156
- Square::Types::RedeemLoyaltyRewardResponse.load(_response.body)
214
+ Square::Types::RedeemLoyaltyRewardResponse.load(response.body)
157
215
  else
158
216
  error_class = Square::Errors::ResponseError.subclass_for_code(code)
159
- raise error_class.new(_response.body, code: code)
217
+ raise error_class.new(response.body, code: code)
160
218
  end
161
219
  end
162
220
  end
@@ -5,9 +5,7 @@ module Square
5
5
  module Rewards
6
6
  module Types
7
7
  class SearchLoyaltyRewardsRequest < Internal::Types::Model
8
- field :query, lambda {
9
- Square::Types::SearchLoyaltyRewardsRequestLoyaltyRewardQuery
10
- }, optional: true, nullable: false
8
+ field :query, -> { Square::Types::SearchLoyaltyRewardsRequestLoyaltyRewardQuery }, optional: true, nullable: false
11
9
  field :limit, -> { Integer }, optional: true, nullable: false
12
10
  field :cursor, -> { String }, optional: true, nullable: false
13
11
  end
@@ -3,7 +3,9 @@
3
3
  module Square
4
4
  module Merchants
5
5
  class Client
6
- # @return [Square::Merchants::Client]
6
+ # @param client [Square::Internal::Http::RawClient]
7
+ #
8
+ # @return [void]
7
9
  def initialize(client:)
8
10
  @client = client
9
11
  end
@@ -19,55 +21,82 @@ module Square
19
21
  # If you know the merchant ID, you can also use the [RetrieveMerchant](api-endpoint:Merchants-RetrieveMerchant)
20
22
  # endpoint to retrieve the merchant information.
21
23
  #
24
+ # @param request_options [Hash]
25
+ # @param params [Hash]
26
+ # @option request_options [String] :base_url
27
+ # @option request_options [Hash{String => Object}] :additional_headers
28
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
29
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
30
+ # @option request_options [Integer] :timeout_in_seconds
31
+ # @option params [Integer, nil] :cursor
32
+ #
22
33
  # @return [Square::Types::ListMerchantsResponse]
23
34
  def list(request_options: {}, **params)
24
- _query_param_names = [
25
- ["cursor"],
26
- %i[cursor]
27
- ].flatten
28
- _query = params.slice(*_query_param_names)
29
- params.except(*_query_param_names)
35
+ params = Square::Internal::Types::Utils.normalize_keys(params)
36
+ query_param_names = %i[cursor]
37
+ query_params = {}
38
+ query_params["cursor"] = params[:cursor] if params.key?(:cursor)
39
+ params.except(*query_param_names)
30
40
 
31
- _request = Square::Internal::JSON::Request.new(
32
- base_url: request_options[:base_url] || Square::Environment::PRODUCTION,
33
- method: "GET",
34
- path: "v2/merchants",
35
- query: _query
36
- )
37
- begin
38
- _response = @client.send(_request)
39
- rescue Net::HTTPRequestTimeout
40
- raise Square::Errors::TimeoutError
41
- end
42
- code = _response.code.to_i
43
- if code.between?(200, 299)
44
- Square::Types::ListMerchantsResponse.load(_response.body)
45
- else
46
- error_class = Square::Errors::ResponseError.subclass_for_code(code)
47
- raise error_class.new(_response.body, code: code)
41
+ Square::Internal::CursorItemIterator.new(
42
+ cursor_field: :cursor,
43
+ item_field: :merchant,
44
+ initial_cursor: query_params[:cursor]
45
+ ) do |next_cursor|
46
+ query_params[:cursor] = next_cursor
47
+ request = Square::Internal::JSON::Request.new(
48
+ base_url: request_options[:base_url],
49
+ method: "GET",
50
+ path: "v2/merchants",
51
+ query: query_params,
52
+ request_options: request_options
53
+ )
54
+ begin
55
+ response = @client.send(request)
56
+ rescue Net::HTTPRequestTimeout
57
+ raise Square::Errors::TimeoutError
58
+ end
59
+ code = response.code.to_i
60
+ if code.between?(200, 299)
61
+ Square::Types::ListMerchantsResponse.load(response.body)
62
+ else
63
+ error_class = Square::Errors::ResponseError.subclass_for_code(code)
64
+ raise error_class.new(response.body, code: code)
65
+ end
48
66
  end
49
67
  end
50
68
 
51
69
  # Retrieves the `Merchant` object for the given `merchant_id`.
52
70
  #
71
+ # @param request_options [Hash]
72
+ # @param params [Hash]
73
+ # @option request_options [String] :base_url
74
+ # @option request_options [Hash{String => Object}] :additional_headers
75
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
76
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
77
+ # @option request_options [Integer] :timeout_in_seconds
78
+ # @option params [String] :merchant_id
79
+ #
53
80
  # @return [Square::Types::GetMerchantResponse]
54
81
  def get(request_options: {}, **params)
55
- _request = Square::Internal::JSON::Request.new(
56
- base_url: request_options[:base_url] || Square::Environment::PRODUCTION,
82
+ params = Square::Internal::Types::Utils.normalize_keys(params)
83
+ request = Square::Internal::JSON::Request.new(
84
+ base_url: request_options[:base_url],
57
85
  method: "GET",
58
- path: "v2/merchants/#{params[:merchant_id]}"
86
+ path: "v2/merchants/#{params[:merchant_id]}",
87
+ request_options: request_options
59
88
  )
60
89
  begin
61
- _response = @client.send(_request)
90
+ response = @client.send(request)
62
91
  rescue Net::HTTPRequestTimeout
63
92
  raise Square::Errors::TimeoutError
64
93
  end
65
- code = _response.code.to_i
94
+ code = response.code.to_i
66
95
  if code.between?(200, 299)
67
- Square::Types::GetMerchantResponse.load(_response.body)
96
+ Square::Types::GetMerchantResponse.load(response.body)
68
97
  else
69
98
  error_class = Square::Errors::ResponseError.subclass_for_code(code)
70
- raise error_class.new(_response.body, code: code)
99
+ raise error_class.new(response.body, code: code)
71
100
  end
72
101
  end
73
102