dub 0.12.3 → 0.12.4

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 (208) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crystalline/enum.rbi +17 -0
  3. data/lib/crystalline/metadata_fields.rb +17 -13
  4. data/lib/crystalline/module.rb +91 -9
  5. data/lib/crystalline/types.rb +27 -0
  6. data/lib/dub.rb +1 -0
  7. data/lib/open_api_sdk/bounties.rb +1 -1
  8. data/lib/open_api_sdk/commissions.rb +2 -2
  9. data/lib/open_api_sdk/customers.rb +32 -32
  10. data/lib/open_api_sdk/domains.rb +97 -97
  11. data/lib/open_api_sdk/dub.rb +2 -1
  12. data/lib/open_api_sdk/folders.rb +61 -61
  13. data/lib/open_api_sdk/links.rb +133 -133
  14. data/lib/open_api_sdk/models/errors/code.rb +0 -2
  15. data/lib/open_api_sdk/models/errors/conflict_code.rb +0 -2
  16. data/lib/open_api_sdk/models/errors/forbidden_code.rb +0 -2
  17. data/lib/open_api_sdk/models/errors/internalservererror_code.rb +0 -2
  18. data/lib/open_api_sdk/models/errors/inviteexpired_code.rb +0 -2
  19. data/lib/open_api_sdk/models/errors/notfound_code.rb +0 -2
  20. data/lib/open_api_sdk/models/errors/ratelimitexceeded_code.rb +0 -2
  21. data/lib/open_api_sdk/models/errors/unauthorized_code.rb +0 -2
  22. data/lib/open_api_sdk/models/errors/unprocessableentity_code.rb +0 -2
  23. data/lib/open_api_sdk/models/operations/accesslevel.rb +0 -2
  24. data/lib/open_api_sdk/models/operations/approvebountysubmission_status.rb +0 -2
  25. data/lib/open_api_sdk/models/operations/bannedreason.rb +0 -2
  26. data/lib/open_api_sdk/models/operations/color.rb +0 -2
  27. data/lib/open_api_sdk/models/operations/continent.rb +0 -2
  28. data/lib/open_api_sdk/models/operations/{listpartners_bannedreason.rb → createpartner_bannedreason.rb} +2 -4
  29. data/lib/open_api_sdk/models/operations/createpartner_bannedreason.rbi +11 -0
  30. data/lib/open_api_sdk/models/operations/{listpartners_fields.rb → createpartner_fields.rb} +1 -1
  31. data/lib/open_api_sdk/models/operations/createpartner_fields.rbi +11 -0
  32. data/lib/open_api_sdk/models/operations/{listpartners_fields_1.rb → createpartner_fields_1.rb} +4 -4
  33. data/lib/open_api_sdk/models/operations/{listpartners_fields_1.rbi → createpartner_fields_1.rbi} +2 -2
  34. data/lib/open_api_sdk/models/operations/{listpartners_fields_2.rb → createpartner_fields_2.rb} +4 -4
  35. data/lib/open_api_sdk/models/operations/{listpartners_fields_2.rbi → createpartner_fields_2.rbi} +2 -2
  36. data/lib/open_api_sdk/models/operations/{listpartners_fields_3.rb → createpartner_fields_3.rb} +4 -4
  37. data/lib/open_api_sdk/models/operations/{listpartners_fields_3.rbi → createpartner_fields_3.rbi} +2 -2
  38. data/lib/open_api_sdk/models/operations/{listpartners_fields_4.rb → createpartner_fields_4.rb} +3 -3
  39. data/lib/open_api_sdk/models/operations/{listpartners_fields_4.rbi → createpartner_fields_4.rbi} +2 -2
  40. data/lib/open_api_sdk/models/operations/{listpartners_fields_constraints.rb → createpartner_fields_constraints.rb} +1 -1
  41. data/lib/open_api_sdk/models/operations/{listpartners_fields_constraints.rbi → createpartner_fields_constraints.rbi} +2 -2
  42. data/lib/open_api_sdk/models/operations/{listpartners_fields_options.rb → createpartner_fields_options.rb} +1 -1
  43. data/lib/open_api_sdk/models/operations/{listpartners_fields_options.rbi → createpartner_fields_options.rbi} +2 -2
  44. data/lib/open_api_sdk/models/operations/{listpartners_fields_partners_constraints.rb → createpartner_fields_partners_constraints.rb} +1 -1
  45. data/lib/open_api_sdk/models/operations/{listpartners_fields_partners_constraints.rbi → createpartner_fields_partners_constraints.rbi} +2 -2
  46. data/lib/open_api_sdk/models/operations/{listpartners_fields_partners_options.rb → createpartner_fields_partners_options.rb} +1 -1
  47. data/lib/open_api_sdk/models/operations/{listpartners_fields_partners_options.rbi → createpartner_fields_partners_options.rbi} +2 -2
  48. data/lib/open_api_sdk/models/operations/{listpartners_fields_partners_response_200_applicationjson_responsebody_referralformdata_8_type.rb → createpartner_fields_partners_response_201_applicationjson_responsebody_referralformdata_8_type.rb} +1 -3
  49. data/lib/open_api_sdk/models/operations/createpartner_fields_partners_response_201_applicationjson_responsebody_referralformdata_8_type.rbi +11 -0
  50. data/lib/open_api_sdk/models/operations/createpartner_fields_partners_response_201_applicationjson_responsebody_referralformdata_type.rb +1 -3
  51. data/lib/open_api_sdk/models/operations/createpartner_fields_partners_response_201_applicationjson_responsebody_type.rb +1 -3
  52. data/lib/open_api_sdk/models/operations/createpartner_fields_partners_response_201_applicationjson_type.rb +1 -3
  53. data/lib/open_api_sdk/models/operations/createpartner_fields_partners_response_201_type.rb +1 -3
  54. data/lib/open_api_sdk/models/operations/createpartner_fields_partners_response_type.rb +1 -3
  55. data/lib/open_api_sdk/models/operations/createpartner_fields_partners_type.rb +1 -3
  56. data/lib/open_api_sdk/models/operations/createpartner_fields_type.rb +1 -3
  57. data/lib/open_api_sdk/models/operations/{listpartners_links.rb → createpartner_links.rb} +1 -1
  58. data/lib/open_api_sdk/models/operations/{listpartners_links.rbi → createpartner_links.rbi} +2 -2
  59. data/lib/open_api_sdk/models/operations/createpartner_referralformdata.rb +32 -0
  60. data/lib/open_api_sdk/models/operations/{listpartners_referralformdata.rbi → createpartner_referralformdata.rbi} +2 -2
  61. data/lib/open_api_sdk/models/operations/createpartner_responsebody.rb +4 -4
  62. data/lib/open_api_sdk/models/operations/createpartner_status.rb +0 -2
  63. data/lib/open_api_sdk/models/operations/deactivatepartner_requestbody.rb +36 -0
  64. data/lib/open_api_sdk/models/operations/deactivatepartner_requestbody.rbi +15 -0
  65. data/lib/open_api_sdk/models/operations/deactivatepartner_responsebody.rb +32 -0
  66. data/lib/open_api_sdk/models/operations/deactivatepartner_responsebody.rbi +13 -0
  67. data/lib/open_api_sdk/models/operations/eight.rb +2 -2
  68. data/lib/open_api_sdk/models/operations/event.rb +0 -2
  69. data/lib/open_api_sdk/models/operations/fields_2.rb +2 -2
  70. data/lib/open_api_sdk/models/operations/fields_3.rb +2 -2
  71. data/lib/open_api_sdk/models/operations/fields_4.rb +2 -2
  72. data/lib/open_api_sdk/models/operations/fields_5.rb +2 -2
  73. data/lib/open_api_sdk/models/operations/fields_6.rb +3 -3
  74. data/lib/open_api_sdk/models/operations/fields_7.rb +2 -2
  75. data/lib/open_api_sdk/models/operations/fields_8.rb +2 -2
  76. data/lib/open_api_sdk/models/operations/fields_type.rb +0 -2
  77. data/lib/open_api_sdk/models/operations/five.rb +2 -2
  78. data/lib/open_api_sdk/models/operations/four.rb +0 -2
  79. data/lib/open_api_sdk/models/operations/getcustomer_type.rb +0 -2
  80. data/lib/open_api_sdk/models/operations/getcustomers_queryparam_sortby.rb +0 -2
  81. data/lib/open_api_sdk/models/operations/getcustomers_queryparam_sortorder.rb +0 -2
  82. data/lib/open_api_sdk/models/operations/getcustomers_type.rb +0 -2
  83. data/lib/open_api_sdk/models/operations/gettags_queryparam_sortby.rb +0 -2
  84. data/lib/open_api_sdk/models/operations/gettags_queryparam_sortorder.rb +0 -2
  85. data/lib/open_api_sdk/models/operations/interval.rb +0 -2
  86. data/lib/open_api_sdk/models/operations/level.rb +0 -2
  87. data/lib/open_api_sdk/models/operations/listbountysubmissions_queryparam_sortby.rb +0 -2
  88. data/lib/open_api_sdk/models/operations/listbountysubmissions_queryparam_sortorder.rb +0 -2
  89. data/lib/open_api_sdk/models/operations/listbountysubmissions_queryparam_status.rb +0 -2
  90. data/lib/open_api_sdk/models/operations/listbountysubmissions_request.rb +1 -1
  91. data/lib/open_api_sdk/models/operations/listbountysubmissions_status.rb +0 -2
  92. data/lib/open_api_sdk/models/operations/listcommissions_queryparam_interval.rb +0 -2
  93. data/lib/open_api_sdk/models/operations/listcommissions_queryparam_sortby.rb +0 -2
  94. data/lib/open_api_sdk/models/operations/listcommissions_queryparam_sortorder.rb +0 -2
  95. data/lib/open_api_sdk/models/operations/listcommissions_status.rb +0 -2
  96. data/lib/open_api_sdk/models/operations/listcommissions_type.rb +0 -2
  97. data/lib/open_api_sdk/models/operations/listevents_responsebody_event.rb +0 -2
  98. data/lib/open_api_sdk/models/operations/listevents_responsebody_events_event.rb +0 -2
  99. data/lib/open_api_sdk/models/operations/listpartners_fields_partners_response_200_applicationjson_responsebody_referralformdata_type.rb +1 -3
  100. data/lib/open_api_sdk/models/operations/listpartners_fields_partners_response_200_applicationjson_responsebody_type.rb +1 -3
  101. data/lib/open_api_sdk/models/operations/listpartners_fields_partners_response_200_applicationjson_type.rb +1 -3
  102. data/lib/open_api_sdk/models/operations/listpartners_fields_partners_response_200_type.rb +1 -3
  103. data/lib/open_api_sdk/models/operations/listpartners_fields_partners_response_type.rb +1 -3
  104. data/lib/open_api_sdk/models/operations/listpartners_fields_partners_type.rb +1 -3
  105. data/lib/open_api_sdk/models/operations/listpartners_fields_type.rb +1 -3
  106. data/lib/open_api_sdk/models/operations/listpartners_queryparam_sortby.rb +0 -2
  107. data/lib/open_api_sdk/models/operations/listpartners_queryparam_sortorder.rb +0 -2
  108. data/lib/open_api_sdk/models/operations/listpartners_queryparam_status.rb +0 -2
  109. data/lib/open_api_sdk/models/operations/listpartners_responsebody.rb +4 -4
  110. data/lib/open_api_sdk/models/operations/listpartners_status.rb +0 -2
  111. data/lib/open_api_sdk/models/operations/listpayouts_mode.rb +19 -0
  112. data/lib/open_api_sdk/models/operations/listpayouts_mode.rbi +11 -0
  113. data/lib/open_api_sdk/models/operations/listpayouts_partner.rb +60 -0
  114. data/lib/open_api_sdk/models/operations/listpayouts_partner.rbi +27 -0
  115. data/lib/open_api_sdk/models/operations/listpayouts_queryparam_sortby.rb +20 -0
  116. data/lib/open_api_sdk/models/operations/listpayouts_queryparam_sortby.rbi +11 -0
  117. data/lib/open_api_sdk/models/operations/listpayouts_queryparam_sortorder.rb +19 -0
  118. data/lib/open_api_sdk/models/operations/listpayouts_queryparam_sortorder.rbi +11 -0
  119. data/lib/open_api_sdk/models/operations/listpayouts_queryparam_status.rb +24 -0
  120. data/lib/open_api_sdk/models/operations/listpayouts_queryparam_status.rbi +11 -0
  121. data/lib/open_api_sdk/models/operations/listpayouts_request.rb +60 -0
  122. data/lib/open_api_sdk/models/operations/listpayouts_request.rbi +27 -0
  123. data/lib/open_api_sdk/models/operations/listpayouts_responsebody.rb +88 -0
  124. data/lib/open_api_sdk/models/operations/listpayouts_responsebody.rbi +41 -0
  125. data/lib/open_api_sdk/models/operations/listpayouts_status.rb +24 -0
  126. data/lib/open_api_sdk/models/operations/listpayouts_status.rbi +11 -0
  127. data/lib/open_api_sdk/models/operations/mode.rb +0 -2
  128. data/lib/open_api_sdk/models/operations/one.rb +0 -2
  129. data/lib/open_api_sdk/models/operations/order.rb +0 -2
  130. data/lib/open_api_sdk/models/operations/paymentprocessor.rb +0 -2
  131. data/lib/open_api_sdk/models/operations/queryparam_continent.rb +0 -2
  132. data/lib/open_api_sdk/models/operations/queryparam_event.rb +0 -2
  133. data/lib/open_api_sdk/models/operations/queryparam_groupby.rb +0 -2
  134. data/lib/open_api_sdk/models/operations/queryparam_interval.rb +0 -2
  135. data/lib/open_api_sdk/models/operations/queryparam_saletype.rb +0 -2
  136. data/lib/open_api_sdk/models/operations/queryparam_sortby.rb +0 -2
  137. data/lib/open_api_sdk/models/operations/queryparam_sortorder.rb +0 -2
  138. data/lib/open_api_sdk/models/operations/queryparam_status.rb +0 -2
  139. data/lib/open_api_sdk/models/operations/queryparam_trigger.rb +0 -2
  140. data/lib/open_api_sdk/models/operations/reason.rb +0 -2
  141. data/lib/open_api_sdk/models/operations/rejectbountysubmission_status.rb +0 -2
  142. data/lib/open_api_sdk/models/operations/rejectionreason.rb +0 -2
  143. data/lib/open_api_sdk/models/operations/responsebody_event.rb +0 -2
  144. data/lib/open_api_sdk/models/operations/responsebody_paymentprocessor.rb +0 -2
  145. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_queryparam_groupby.rb +0 -2
  146. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_queryparam_interval.rb +0 -2
  147. data/lib/open_api_sdk/models/operations/saletype.rb +0 -2
  148. data/lib/open_api_sdk/models/operations/seven.rb +2 -2
  149. data/lib/open_api_sdk/models/operations/six.rb +2 -2
  150. data/lib/open_api_sdk/models/operations/sort.rb +0 -2
  151. data/lib/open_api_sdk/models/operations/sortby.rb +0 -2
  152. data/lib/open_api_sdk/models/operations/sortorder.rb +0 -2
  153. data/lib/open_api_sdk/models/operations/status.rb +0 -2
  154. data/lib/open_api_sdk/models/operations/three.rb +0 -2
  155. data/lib/open_api_sdk/models/operations/trigger.rb +0 -2
  156. data/lib/open_api_sdk/models/operations/two.rb +0 -2
  157. data/lib/open_api_sdk/models/operations/type.rb +0 -2
  158. data/lib/open_api_sdk/models/operations/updatecommission_status.rb +0 -2
  159. data/lib/open_api_sdk/models/operations/updatecommission_type.rb +0 -2
  160. data/lib/open_api_sdk/models/operations/updatecustomer_type.rb +0 -2
  161. data/lib/open_api_sdk/models/operations/updatefolder_accesslevel.rb +0 -2
  162. data/lib/open_api_sdk/models/operations/updatetag_color.rb +0 -2
  163. data/lib/open_api_sdk/models/operations/user.rb +44 -0
  164. data/lib/open_api_sdk/models/operations/user.rbi +19 -0
  165. data/lib/open_api_sdk/models/operations.rb +24 -13
  166. data/lib/open_api_sdk/models/shared/accesslevel.rb +0 -2
  167. data/lib/open_api_sdk/models/shared/analyticsregions_city.rb +0 -2
  168. data/lib/open_api_sdk/models/shared/bannedreason.rb +0 -2
  169. data/lib/open_api_sdk/models/shared/city.rb +0 -2
  170. data/lib/open_api_sdk/models/shared/code.rb +0 -2
  171. data/lib/open_api_sdk/models/shared/color.rb +0 -2
  172. data/lib/open_api_sdk/models/shared/commissioncreatedevent_event.rb +0 -2
  173. data/lib/open_api_sdk/models/shared/commissioncreatedevent_status.rb +0 -2
  174. data/lib/open_api_sdk/models/shared/commissioncreatedevent_type.rb +0 -2
  175. data/lib/open_api_sdk/models/shared/continent.rb +0 -2
  176. data/lib/open_api_sdk/models/shared/fields_type.rb +0 -2
  177. data/lib/open_api_sdk/models/shared/leadcreatedevent_event.rb +0 -2
  178. data/lib/open_api_sdk/models/shared/linkclickedevent_event.rb +0 -2
  179. data/lib/open_api_sdk/models/shared/linktagschema_color.rb +0 -2
  180. data/lib/open_api_sdk/models/shared/one.rb +0 -2
  181. data/lib/open_api_sdk/models/shared/partnerapplicationsubmittedevent_event.rb +0 -2
  182. data/lib/open_api_sdk/models/shared/partnerapplicationsubmittedevent_status.rb +0 -2
  183. data/lib/open_api_sdk/models/shared/partnerenrolledevent_event.rb +0 -2
  184. data/lib/open_api_sdk/models/shared/partnerenrolledevent_fields_data_referralformdata_5_type.rb +0 -2
  185. data/lib/open_api_sdk/models/shared/partnerenrolledevent_fields_data_referralformdata_6_type.rb +0 -2
  186. data/lib/open_api_sdk/models/shared/partnerenrolledevent_fields_data_referralformdata_7_type.rb +0 -2
  187. data/lib/open_api_sdk/models/shared/partnerenrolledevent_fields_data_referralformdata_8_type.rb +0 -2
  188. data/lib/open_api_sdk/models/shared/partnerenrolledevent_fields_data_referralformdata_type.rb +0 -2
  189. data/lib/open_api_sdk/models/shared/partnerenrolledevent_fields_data_type.rb +0 -2
  190. data/lib/open_api_sdk/models/shared/partnerenrolledevent_fields_type.rb +0 -2
  191. data/lib/open_api_sdk/models/shared/region.rb +0 -2
  192. data/lib/open_api_sdk/models/shared/salecreatedevent_event.rb +0 -2
  193. data/lib/open_api_sdk/models/shared/status.rb +0 -2
  194. data/lib/open_api_sdk/models/shared/three.rb +0 -2
  195. data/lib/open_api_sdk/models/shared/trigger.rb +0 -2
  196. data/lib/open_api_sdk/models/shared/two.rb +0 -2
  197. data/lib/open_api_sdk/models/shared/type.rb +0 -2
  198. data/lib/open_api_sdk/partners.rb +289 -54
  199. data/lib/open_api_sdk/payouts.rb +267 -0
  200. data/lib/open_api_sdk/sdkconfiguration.rb +3 -3
  201. data/lib/open_api_sdk/tags.rb +61 -61
  202. data/lib/open_api_sdk/utils/url.rb +1 -1
  203. data/lib/open_api_sdk/utils/utils.rb +12 -0
  204. metadata +54 -30
  205. data/lib/open_api_sdk/models/operations/listpartners_bannedreason.rbi +0 -11
  206. data/lib/open_api_sdk/models/operations/listpartners_fields.rbi +0 -11
  207. data/lib/open_api_sdk/models/operations/listpartners_fields_partners_response_200_applicationjson_responsebody_referralformdata_8_type.rbi +0 -11
  208. data/lib/open_api_sdk/models/operations/listpartners_referralformdata.rb +0 -32
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 208df86c7cd612aa85e7ac79a7e1546249899e32427baaf0f38c4331db930247
4
- data.tar.gz: a7b81a55a6fbe200e934e7a4927a7972237284e0aadf9c316e9a59f3596e4c21
3
+ metadata.gz: 66da0756afa302568f27f615694cf428bc3f0e8b113e80c4238ae5263af1d0f4
4
+ data.tar.gz: 5bbb12ae587c7d37f366c86f0fa215f9273b26990530e705825c631141d5d163
5
5
  SHA512:
6
- metadata.gz: 012c01e5b7fc3254bb2b370a4f539c4d7feea41e1ba171cff2864be114536a10c717d6bd09052c5875442f3d97a694a84701bb61cc0584f5235010d4c37fb350
7
- data.tar.gz: 5ea16ec0f0d80a90ffabd9de50c67a6a0a923acafed0f2f004cb36db053051823de92b70b6e849baccf51100f7857a92d5ad6d9b8131ae18192b75b74536c579
6
+ metadata.gz: 469bd062d22c8b5a90f0d9739de0eb0c54c7bc9a8b9a59940f0db01cb2bc4597ce1dc7367096eb35b869cf446da72b39b5f14a6b06a55de6eb6622f981ad9323
7
+ data.tar.gz: ef641f821c7f66680853ae70cc89bd546acc32b89adb8fda3c1bde600a2895a080c27d70cdb96fd65d61bc148df51f10e472763bd4c013100265b8cd0a4fe16f
@@ -0,0 +1,17 @@
1
+ # typed: true
2
+
3
+ module Crystalline
4
+ module Enum
5
+ mixes_in_class_methods(ClassMethods)
6
+
7
+ module ClassMethods
8
+ def enums(&blk); end
9
+ def open!; end
10
+ def open?; end
11
+ def deserialize(val); end
12
+ end
13
+
14
+ def serialize; end
15
+ def known?; end
16
+ end
17
+ end
@@ -112,17 +112,21 @@ module Crystalline
112
112
  union_types = Crystalline::Utils.get_union_types(field_type)
113
113
  union_types = union_types.sort_by { |klass| Crystalline.non_nilable_attr_count(klass) }
114
114
 
115
- union_types.each do |union_type|
116
- begin
117
- to_build[key] = Crystalline.unmarshal_json(value, union_type)
118
- rescue TypeError
119
- next
120
- rescue NoMethodError
121
- next
122
- rescue KeyError
123
- next
115
+ if Crystalline.union_strategy == :populated_fields
116
+ to_build[key] = Crystalline.unmarshal_union_populated_fields(value, union_types)
117
+ else
118
+ union_types.each do |union_type|
119
+ begin
120
+ to_build[key] = Crystalline.unmarshal_json(value, union_type)
121
+ rescue TypeError
122
+ next
123
+ rescue NoMethodError
124
+ next
125
+ rescue KeyError
126
+ next
127
+ end
128
+ break
124
129
  end
125
- break
126
130
  end
127
131
  end
128
132
  elsif field_type.instance_of?(Class) && field_type.include?(::Crystalline::MetadataFields)
@@ -182,10 +186,10 @@ module Crystalline
182
186
  next if f.nil? && !required
183
187
  result[key] = nil if f.nil? && required
184
188
 
185
- if f.is_a? Array
189
+ if f.is_a? ::Array
186
190
  result[key] = f.map { |o| marshal_single(o) }
187
- elsif f.is_a? Hash
188
- result[key] = f.map { |k, v| [k, marshal_single(v)] }
191
+ elsif f.is_a? ::Hash
192
+ result[key] = f.transform_values { |v| marshal_single(v) }
189
193
  else
190
194
  result[key] = marshal_single(f)
191
195
  end
@@ -4,6 +4,11 @@
4
4
  # frozen_string_literal: true
5
5
 
6
6
  module Crystalline
7
+ @union_strategy = :left_to_right
8
+
9
+ class << self
10
+ attr_accessor :union_strategy
11
+ end
7
12
 
8
13
  def self.to_dict(complex)
9
14
  if complex.is_a? Array
@@ -35,15 +40,10 @@ module Crystalline
35
40
  union_types = Crystalline::Utils.get_union_types(type)
36
41
  union_types = union_types.sort_by { |klass| Crystalline.non_nilable_attr_count(klass) }
37
42
 
38
- union_types.each do |union_type|
39
- unmarshalled_val = Crystalline.unmarshal_json(data, union_type)
40
- return unmarshalled_val
41
- rescue TypeError
42
- next
43
- rescue NoMethodError
44
- next
45
- rescue KeyError
46
- next
43
+ if Crystalline.union_strategy == :populated_fields
44
+ Crystalline.unmarshal_union_populated_fields(data, union_types)
45
+ else
46
+ Crystalline.unmarshal_union_left_to_right(data, union_types)
47
47
  end
48
48
  elsif Crystalline::Utils.arr? type
49
49
  data.map { |v| Crystalline.unmarshal_json(v, Crystalline::Utils.arr_of(type)) }
@@ -55,6 +55,8 @@ module Crystalline
55
55
  Crystalline::Utils.to_boolean(data)
56
56
  elsif type.is_a?(Class) && type < T::Enum
57
57
  type.deserialize(data)
58
+ elsif type.is_a?(Class) && type.respond_to?(:enums) && type.respond_to?(:deserialize)
59
+ type.deserialize(data)
58
60
  else
59
61
  data
60
62
  end
@@ -74,6 +76,86 @@ module Crystalline
74
76
  end
75
77
  end
76
78
 
79
+ def self.unmarshal_union_left_to_right(data, union_types)
80
+ union_types.each do |union_type|
81
+ return Crystalline.unmarshal_json(data, union_type)
82
+ rescue TypeError
83
+ next
84
+ rescue NoMethodError
85
+ next
86
+ rescue KeyError
87
+ next
88
+ end
89
+ nil
90
+ end
91
+
92
+ def self.unmarshal_union_populated_fields(data, union_types)
93
+ best_value = nil
94
+ best_matched = -1
95
+ best_inexact = 0
96
+ best_unmatched = 0
97
+
98
+ union_types.each do |union_type|
99
+ value = Crystalline.unmarshal_json(data, union_type)
100
+ matched, inexact, unmatched = count_matched_fields(value, data)
101
+
102
+ if best_value.nil? ||
103
+ matched > best_matched ||
104
+ (matched == best_matched && inexact < best_inexact) ||
105
+ (matched == best_matched && inexact == best_inexact && unmatched < best_unmatched)
106
+ best_value = value
107
+ best_matched = matched
108
+ best_inexact = inexact
109
+ best_unmatched = unmatched
110
+ end
111
+ rescue TypeError
112
+ next
113
+ rescue NoMethodError
114
+ next
115
+ rescue KeyError
116
+ next
117
+ end
118
+ best_value
119
+ end
120
+
121
+ def self.count_matched_fields(value, raw_data)
122
+ matched = 0
123
+ inexact = 0
124
+ unmatched = 0
125
+
126
+ if value.class.include?(::Crystalline::MetadataFields)
127
+ value.fields.each do |field|
128
+ format_metadata = field.metadata.fetch(:format_json, {})
129
+ lookup = format_metadata.fetch(:letter_case, nil)&.call
130
+ field_val = value.send(field.name)
131
+
132
+ if raw_data.is_a?(::Hash) && lookup && raw_data.key?(lookup)
133
+ if field_val.class.include?(::Crystalline::MetadataFields) && raw_data[lookup].is_a?(::Hash)
134
+ nested_matched, nested_inexact, nested_unmatched = count_matched_fields(field_val, raw_data[lookup])
135
+ matched += nested_matched
136
+ inexact += nested_inexact
137
+ unmatched += nested_unmatched
138
+ else
139
+ matched += 1
140
+ if field_val.respond_to?(:known?) && !field_val.known?
141
+ inexact += 1
142
+ end
143
+ end
144
+ elsif !::Crystalline::Utils.nilable?(field.type)
145
+ unmatched += 1
146
+ end
147
+ end
148
+ elsif value.is_a?(::Array)
149
+ matched = value.length
150
+ elsif value.is_a?(::Hash)
151
+ matched = value.length
152
+ else
153
+ matched = 1
154
+ end
155
+
156
+ [matched, inexact, unmatched]
157
+ end
158
+
77
159
  def self.non_nilable_attr_count(klass)
78
160
  # somewhat sane sort ordering for Union deserialization.
79
161
  # All Crystalline objects return the number of non-nilable fields
@@ -67,9 +67,19 @@ module Crystalline
67
67
  end
68
68
  end
69
69
 
70
+ def open!
71
+ @open = true
72
+ end
73
+
74
+ def open?
75
+ @open == true
76
+ end
77
+
70
78
  def deserialize(val)
71
79
  if @mapping.include? val
72
80
  @mapping[val]
81
+ elsif open?
82
+ new(val)
73
83
  else
74
84
  raise "Invalid value for enum: #{val}"
75
85
  end
@@ -79,5 +89,22 @@ module Crystalline
79
89
  def serialize
80
90
  @val
81
91
  end
92
+
93
+ def known?
94
+ self.class.instance_variable_get(:@mapping)&.value?(self) || false
95
+ end
96
+
97
+ def ==(other)
98
+ other = other.serialize if other.is_a?(self.class)
99
+ @val == other
100
+ end
101
+
102
+ def eql?(other)
103
+ self == other
104
+ end
105
+
106
+ def hash
107
+ @val.hash
108
+ end
82
109
  end
83
110
  end
data/lib/dub.rb CHANGED
@@ -15,6 +15,7 @@ module OpenApiSDK
15
15
  autoload :Customers, 'open_api_sdk/customers'
16
16
  autoload :Partners, 'open_api_sdk/partners'
17
17
  autoload :Commissions, 'open_api_sdk/commissions'
18
+ autoload :Payouts, 'open_api_sdk/payouts'
18
19
  autoload :EmbedTokens, 'open_api_sdk/embed_tokens'
19
20
  autoload :QRCodes, 'open_api_sdk/qr_codes'
20
21
  autoload :Bounties, 'open_api_sdk/bounties'
@@ -42,7 +42,7 @@ module OpenApiSDK
42
42
  sig { params(request: Models::Operations::ListBountySubmissionsRequest, timeout_ms: T.nilable(Integer)).returns(T::Array[Models::Operations::ListBountySubmissionsResponseBody]) }
43
43
  def list_submissions(request:, timeout_ms: nil)
44
44
  # list_submissions - List bounty submissions
45
- # List all submissions for a specific bounty.
45
+ # List all submissions for a specific bounty in your partner program.
46
46
  url, params = @sdk_configuration.get_server_details
47
47
  base_url = Utils.template_url(url, params)
48
48
  url = Utils.generate_url(
@@ -41,8 +41,8 @@ module OpenApiSDK
41
41
 
42
42
  sig { params(request: Models::Operations::ListCommissionsRequest, timeout_ms: T.nilable(Integer)).returns(T::Array[Models::Operations::ListCommissionsResponseBody]) }
43
43
  def list(request:, timeout_ms: nil)
44
- # list - Get commissions for a program.
45
- # Retrieve a list of commissions for a program.
44
+ # list - List all commissions
45
+ # Retrieve a list of commissions for your partner program.
46
46
  url, params = @sdk_configuration.get_server_details
47
47
  base_url = Utils.template_url(url, params)
48
48
  url = "#{base_url}/commissions"
@@ -496,31 +496,23 @@ module OpenApiSDK
496
496
  end
497
497
 
498
498
 
499
- sig { params(request: Models::Operations::UpdateCustomerRequest, timeout_ms: T.nilable(Integer)).returns(Models::Operations::UpdateCustomerResponseBody) }
500
- def update(request:, timeout_ms: nil)
501
- # update - Update a customer
502
- # Update a customer for the authenticated workspace.
499
+ sig { params(id: ::String, timeout_ms: T.nilable(Integer)).returns(Models::Operations::DeleteCustomerResponseBody) }
500
+ def delete(id:, timeout_ms: nil)
501
+ # delete - Delete a customer
502
+ # Delete a customer from a workspace.
503
+ request = Models::Operations::DeleteCustomerRequest.new(
504
+ id: id
505
+ )
503
506
  url, params = @sdk_configuration.get_server_details
504
507
  base_url = Utils.template_url(url, params)
505
508
  url = Utils.generate_url(
506
- Models::Operations::UpdateCustomerRequest,
509
+ Models::Operations::DeleteCustomerRequest,
507
510
  base_url,
508
511
  '/customers/{id}',
509
512
  request
510
513
  )
511
514
  headers = {}
512
515
  headers = T.cast(headers, T::Hash[String, String])
513
- req_content_type, data, form = Utils.serialize_request_body(request, false, false, :request_body, :json)
514
- headers['content-type'] = req_content_type
515
-
516
- if form
517
- body = Utils.encode_form(form)
518
- elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
519
- body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
520
- else
521
- body = data
522
- end
523
- query_params = Utils.get_query_params(Models::Operations::UpdateCustomerRequest, request, nil)
524
516
  headers['Accept'] = 'application/json'
525
517
  headers['user-agent'] = @sdk_configuration.user_agent
526
518
 
@@ -536,7 +528,7 @@ module OpenApiSDK
536
528
  config: @sdk_configuration,
537
529
  base_url: base_url,
538
530
  oauth2_scopes: nil,
539
- operation_id: 'updateCustomer',
531
+ operation_id: 'deleteCustomer',
540
532
  security_source: @sdk_configuration.security_source
541
533
  )
542
534
 
@@ -545,11 +537,9 @@ module OpenApiSDK
545
537
 
546
538
 
547
539
  begin
548
- http_response = T.must(connection).patch(url) do |req|
549
- req.body = body
540
+ http_response = T.must(connection).delete(url) do |req|
550
541
  req.headers.merge!(headers)
551
542
  req.options.timeout = timeout unless timeout.nil?
552
- req.params = query_params
553
543
  Utils.configure_request_security(req, security)
554
544
 
555
545
  @sdk_configuration.hooks.before_request(
@@ -595,7 +585,7 @@ module OpenApiSDK
595
585
  response: http_response
596
586
  )
597
587
  response_data = http_response.env.response_body
598
- obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Operations::UpdateCustomerResponseBody)
588
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Operations::DeleteCustomerResponseBody)
599
589
 
600
590
  return obj
601
591
  else
@@ -738,23 +728,31 @@ module OpenApiSDK
738
728
  end
739
729
 
740
730
 
741
- sig { params(id: ::String, timeout_ms: T.nilable(Integer)).returns(Models::Operations::DeleteCustomerResponseBody) }
742
- def delete(id:, timeout_ms: nil)
743
- # delete - Delete a customer
744
- # Delete a customer from a workspace.
745
- request = Models::Operations::DeleteCustomerRequest.new(
746
- id: id
747
- )
731
+ sig { params(request: Models::Operations::UpdateCustomerRequest, timeout_ms: T.nilable(Integer)).returns(Models::Operations::UpdateCustomerResponseBody) }
732
+ def update(request:, timeout_ms: nil)
733
+ # update - Update a customer
734
+ # Update a customer for the authenticated workspace.
748
735
  url, params = @sdk_configuration.get_server_details
749
736
  base_url = Utils.template_url(url, params)
750
737
  url = Utils.generate_url(
751
- Models::Operations::DeleteCustomerRequest,
738
+ Models::Operations::UpdateCustomerRequest,
752
739
  base_url,
753
740
  '/customers/{id}',
754
741
  request
755
742
  )
756
743
  headers = {}
757
744
  headers = T.cast(headers, T::Hash[String, String])
745
+ req_content_type, data, form = Utils.serialize_request_body(request, false, false, :request_body, :json)
746
+ headers['content-type'] = req_content_type
747
+
748
+ if form
749
+ body = Utils.encode_form(form)
750
+ elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
751
+ body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
752
+ else
753
+ body = data
754
+ end
755
+ query_params = Utils.get_query_params(Models::Operations::UpdateCustomerRequest, request, nil)
758
756
  headers['Accept'] = 'application/json'
759
757
  headers['user-agent'] = @sdk_configuration.user_agent
760
758
 
@@ -770,7 +768,7 @@ module OpenApiSDK
770
768
  config: @sdk_configuration,
771
769
  base_url: base_url,
772
770
  oauth2_scopes: nil,
773
- operation_id: 'deleteCustomer',
771
+ operation_id: 'updateCustomer',
774
772
  security_source: @sdk_configuration.security_source
775
773
  )
776
774
 
@@ -779,9 +777,11 @@ module OpenApiSDK
779
777
 
780
778
 
781
779
  begin
782
- http_response = T.must(connection).delete(url) do |req|
780
+ http_response = T.must(connection).patch(url) do |req|
781
+ req.body = body
783
782
  req.headers.merge!(headers)
784
783
  req.options.timeout = timeout unless timeout.nil?
784
+ req.params = query_params
785
785
  Utils.configure_request_security(req, security)
786
786
 
787
787
  @sdk_configuration.hooks.before_request(
@@ -827,7 +827,7 @@ module OpenApiSDK
827
827
  response: http_response
828
828
  )
829
829
  response_data = http_response.env.response_body
830
- obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Operations::DeleteCustomerResponseBody)
830
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Operations::UpdateCustomerResponseBody)
831
831
 
832
832
  return obj
833
833
  else