ifeelgoods 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/Gemfile.lock +81 -0
  4. data/README.md +167 -0
  5. data/Rakefile +10 -0
  6. data/docs/Account.md +34 -0
  7. data/docs/AccountsApi.md +84 -0
  8. data/docs/ActivateRedemptionRequest.md +18 -0
  9. data/docs/ActivateRedemptionRequestData.md +18 -0
  10. data/docs/Address.md +32 -0
  11. data/docs/BrandSummary.md +24 -0
  12. data/docs/BudgetLineItem.md +30 -0
  13. data/docs/CardConsultRedemption200Response.md +18 -0
  14. data/docs/CardConsultRedemption200ResponseData.md +20 -0
  15. data/docs/CardConsultRedemption422Response.md +20 -0
  16. data/docs/ClientDetails.md +40 -0
  17. data/docs/ClientSummary.md +40 -0
  18. data/docs/ClientSummaryBudgetAlerts.md +20 -0
  19. data/docs/ClientsApi.md +341 -0
  20. data/docs/CreateAndRedeemRequest.md +18 -0
  21. data/docs/CreateAndRedeemRequestData.md +24 -0
  22. data/docs/CreateRedemption201Response.md +18 -0
  23. data/docs/CreateRedemption422Response.md +20 -0
  24. data/docs/CreateRedemptionRequest.md +18 -0
  25. data/docs/CreateRedemptionRequestData.md +26 -0
  26. data/docs/CreateRedemptionRequestDataCustomization.md +18 -0
  27. data/docs/CreateRedemptionRequestDataCustomizationPdf.md +20 -0
  28. data/docs/CreateRedemptionRequestDataReward.md +18 -0
  29. data/docs/CreateRedemptionRequestDataValue.md +18 -0
  30. data/docs/Dimension.md +44 -0
  31. data/docs/DimensionDenomination.md +49 -0
  32. data/docs/DiscountSummary.md +28 -0
  33. data/docs/ErrorResponse.md +20 -0
  34. data/docs/GetClientBudgetHistory200Response.md +20 -0
  35. data/docs/GetClientById200Response.md +18 -0
  36. data/docs/GetCurrentAccount200Response.md +18 -0
  37. data/docs/GetPromotionByID200Response.md +18 -0
  38. data/docs/GetPromotionByID401Response.md +20 -0
  39. data/docs/GetPromotionByID404Response.md +20 -0
  40. data/docs/GetRedemptionStats200Response.md +20 -0
  41. data/docs/GetRewardBySKU200Response.md +18 -0
  42. data/docs/ListClientDiscounts200Response.md +20 -0
  43. data/docs/ListClientPromotions200Response.md +20 -0
  44. data/docs/ListClientPromotions200ResponsePaging.md +22 -0
  45. data/docs/ListClientPromotions401Response.md +20 -0
  46. data/docs/ListClientVendorPlaces200Response.md +20 -0
  47. data/docs/ListClients200Response.md +20 -0
  48. data/docs/ListRedemptions200Response.md +20 -0
  49. data/docs/ListRewards200Response.md +20 -0
  50. data/docs/ProductSummary.md +26 -0
  51. data/docs/ProductType.md +20 -0
  52. data/docs/PromotionDetails.md +46 -0
  53. data/docs/PromotionDetailsClient.md +20 -0
  54. data/docs/PromotionDetailsRewardsInner.md +28 -0
  55. data/docs/PromotionsApi.md +173 -0
  56. data/docs/Redemption.md +58 -0
  57. data/docs/RedemptionPromotion.md +24 -0
  58. data/docs/RedemptionReward.md +24 -0
  59. data/docs/RedemptionRewardFormat.md +20 -0
  60. data/docs/RedemptionValue.md +20 -0
  61. data/docs/RedemptionsApi.md +857 -0
  62. data/docs/RewardDetails.md +76 -0
  63. data/docs/RewardDetailsBrand.md +24 -0
  64. data/docs/RewardDetailsDimensions.md +44 -0
  65. data/docs/RewardDetailsProduct.md +26 -0
  66. data/docs/RewardDetailsProductType.md +20 -0
  67. data/docs/RewardDetailsTargeting.md +22 -0
  68. data/docs/RewardFormat.md +20 -0
  69. data/docs/RewardsApi.md +175 -0
  70. data/docs/Stats.md +20 -0
  71. data/docs/StatsApi.md +101 -0
  72. data/docs/StatsTimeframe.md +20 -0
  73. data/docs/StatsValuesInner.md +24 -0
  74. data/docs/StatsValuesInnerGroupByInner.md +26 -0
  75. data/docs/StatsValuesInnerStates.md +34 -0
  76. data/docs/User.md +26 -0
  77. data/docs/VendorPlace.md +26 -0
  78. data/docs/VendorPlaceBrand.md +20 -0
  79. data/docs/VendorPlaceGeoloc.md +20 -0
  80. data/docs/VendorPlacesApi.md +97 -0
  81. data/git_push.sh +57 -0
  82. data/ifeelgoods.gemspec +39 -0
  83. data/lib/ifeelgoods/api/accounts_api.rb +79 -0
  84. data/lib/ifeelgoods/api/clients_api.rb +318 -0
  85. data/lib/ifeelgoods/api/promotions_api.rb +166 -0
  86. data/lib/ifeelgoods/api/redemptions_api.rb +762 -0
  87. data/lib/ifeelgoods/api/rewards_api.rb +166 -0
  88. data/lib/ifeelgoods/api/stats_api.rb +111 -0
  89. data/lib/ifeelgoods/api/vendor_places_api.rb +109 -0
  90. data/lib/ifeelgoods/api_client.rb +397 -0
  91. data/lib/ifeelgoods/api_error.rb +58 -0
  92. data/lib/ifeelgoods/api_model_base.rb +88 -0
  93. data/lib/ifeelgoods/configuration.rb +332 -0
  94. data/lib/ifeelgoods/models/account.rb +260 -0
  95. data/lib/ifeelgoods/models/activate_redemption_request.rb +164 -0
  96. data/lib/ifeelgoods/models/activate_redemption_request_data.rb +147 -0
  97. data/lib/ifeelgoods/models/address.rb +219 -0
  98. data/lib/ifeelgoods/models/brand_summary.rb +212 -0
  99. data/lib/ifeelgoods/models/budget_line_item.rb +249 -0
  100. data/lib/ifeelgoods/models/card_consult_redemption200_response.rb +147 -0
  101. data/lib/ifeelgoods/models/card_consult_redemption200_response_data.rb +158 -0
  102. data/lib/ifeelgoods/models/card_consult_redemption422_response.rb +157 -0
  103. data/lib/ifeelgoods/models/client_details.rb +287 -0
  104. data/lib/ifeelgoods/models/client_summary.rb +287 -0
  105. data/lib/ifeelgoods/models/client_summary_budget_alerts.rb +159 -0
  106. data/lib/ifeelgoods/models/create_and_redeem_request.rb +164 -0
  107. data/lib/ifeelgoods/models/create_and_redeem_request_data.rb +174 -0
  108. data/lib/ifeelgoods/models/create_redemption201_response.rb +147 -0
  109. data/lib/ifeelgoods/models/create_redemption422_response.rb +157 -0
  110. data/lib/ifeelgoods/models/create_redemption_request.rb +164 -0
  111. data/lib/ifeelgoods/models/create_redemption_request_data.rb +235 -0
  112. data/lib/ifeelgoods/models/create_redemption_request_data_customization.rb +147 -0
  113. data/lib/ifeelgoods/models/create_redemption_request_data_customization_pdf.rb +157 -0
  114. data/lib/ifeelgoods/models/create_redemption_request_data_reward.rb +147 -0
  115. data/lib/ifeelgoods/models/create_redemption_request_data_value.rb +148 -0
  116. data/lib/ifeelgoods/models/dimension.rb +293 -0
  117. data/lib/ifeelgoods/models/dimension_denomination.rb +105 -0
  118. data/lib/ifeelgoods/models/discount_summary.rb +195 -0
  119. data/lib/ifeelgoods/models/error_response.rb +157 -0
  120. data/lib/ifeelgoods/models/get_client_budget_history200_response.rb +158 -0
  121. data/lib/ifeelgoods/models/get_client_by_id200_response.rb +147 -0
  122. data/lib/ifeelgoods/models/get_current_account200_response.rb +147 -0
  123. data/lib/ifeelgoods/models/get_promotion_by_id200_response.rb +147 -0
  124. data/lib/ifeelgoods/models/get_promotion_by_id401_response.rb +157 -0
  125. data/lib/ifeelgoods/models/get_promotion_by_id404_response.rb +157 -0
  126. data/lib/ifeelgoods/models/get_redemption_stats200_response.rb +158 -0
  127. data/lib/ifeelgoods/models/get_reward_by_sku200_response.rb +147 -0
  128. data/lib/ifeelgoods/models/list_client_discounts200_response.rb +158 -0
  129. data/lib/ifeelgoods/models/list_client_promotions200_response.rb +158 -0
  130. data/lib/ifeelgoods/models/list_client_promotions200_response_paging.rb +165 -0
  131. data/lib/ifeelgoods/models/list_client_promotions401_response.rb +157 -0
  132. data/lib/ifeelgoods/models/list_client_vendor_places200_response.rb +158 -0
  133. data/lib/ifeelgoods/models/list_clients200_response.rb +158 -0
  134. data/lib/ifeelgoods/models/list_redemptions200_response.rb +158 -0
  135. data/lib/ifeelgoods/models/list_rewards200_response.rb +158 -0
  136. data/lib/ifeelgoods/models/product_summary.rb +222 -0
  137. data/lib/ifeelgoods/models/product_type.rb +204 -0
  138. data/lib/ifeelgoods/models/promotion_details.rb +354 -0
  139. data/lib/ifeelgoods/models/promotion_details_client.rb +157 -0
  140. data/lib/ifeelgoods/models/promotion_details_rewards_inner.rb +245 -0
  141. data/lib/ifeelgoods/models/redemption.rb +383 -0
  142. data/lib/ifeelgoods/models/redemption_promotion.rb +211 -0
  143. data/lib/ifeelgoods/models/redemption_reward.rb +224 -0
  144. data/lib/ifeelgoods/models/redemption_reward_format.rb +193 -0
  145. data/lib/ifeelgoods/models/redemption_value.rb +157 -0
  146. data/lib/ifeelgoods/models/reward_details.rb +486 -0
  147. data/lib/ifeelgoods/models/reward_details_brand.rb +213 -0
  148. data/lib/ifeelgoods/models/reward_details_dimensions.rb +293 -0
  149. data/lib/ifeelgoods/models/reward_details_product.rb +222 -0
  150. data/lib/ifeelgoods/models/reward_details_product_type.rb +204 -0
  151. data/lib/ifeelgoods/models/reward_details_targeting.rb +170 -0
  152. data/lib/ifeelgoods/models/reward_format.rb +192 -0
  153. data/lib/ifeelgoods/models/stats.rb +158 -0
  154. data/lib/ifeelgoods/models/stats_timeframe.rb +156 -0
  155. data/lib/ifeelgoods/models/stats_values_inner.rb +178 -0
  156. data/lib/ifeelgoods/models/stats_values_inner_group_by_inner.rb +186 -0
  157. data/lib/ifeelgoods/models/stats_values_inner_states.rb +219 -0
  158. data/lib/ifeelgoods/models/user.rb +188 -0
  159. data/lib/ifeelgoods/models/vendor_place.rb +186 -0
  160. data/lib/ifeelgoods/models/vendor_place_brand.rb +158 -0
  161. data/lib/ifeelgoods/models/vendor_place_geoloc.rb +156 -0
  162. data/lib/ifeelgoods/version.rb +15 -0
  163. data/lib/ifeelgoods.rb +115 -0
  164. data/spec/api/accounts_api_spec.rb +46 -0
  165. data/spec/api/clients_api_spec.rb +88 -0
  166. data/spec/api/promotions_api_spec.rb +61 -0
  167. data/spec/api/redemptions_api_spec.rb +175 -0
  168. data/spec/api/rewards_api_spec.rb +62 -0
  169. data/spec/api/stats_api_spec.rb +53 -0
  170. data/spec/api/vendor_places_api_spec.rb +51 -0
  171. data/spec/models/account_spec.rb +88 -0
  172. data/spec/models/activate_redemption_request_data_spec.rb +36 -0
  173. data/spec/models/activate_redemption_request_spec.rb +36 -0
  174. data/spec/models/address_spec.rb +78 -0
  175. data/spec/models/brand_summary_spec.rb +58 -0
  176. data/spec/models/budget_line_item_spec.rb +80 -0
  177. data/spec/models/card_consult_redemption200_response_data_spec.rb +42 -0
  178. data/spec/models/card_consult_redemption200_response_spec.rb +36 -0
  179. data/spec/models/card_consult_redemption422_response_spec.rb +42 -0
  180. data/spec/models/client_details_spec.rb +106 -0
  181. data/spec/models/client_summary_budget_alerts_spec.rb +42 -0
  182. data/spec/models/client_summary_spec.rb +106 -0
  183. data/spec/models/create_and_redeem_request_data_spec.rb +54 -0
  184. data/spec/models/create_and_redeem_request_spec.rb +36 -0
  185. data/spec/models/create_redemption201_response_spec.rb +36 -0
  186. data/spec/models/create_redemption422_response_spec.rb +42 -0
  187. data/spec/models/create_redemption_request_data_customization_pdf_spec.rb +42 -0
  188. data/spec/models/create_redemption_request_data_customization_spec.rb +36 -0
  189. data/spec/models/create_redemption_request_data_reward_spec.rb +36 -0
  190. data/spec/models/create_redemption_request_data_spec.rb +60 -0
  191. data/spec/models/create_redemption_request_data_value_spec.rb +36 -0
  192. data/spec/models/create_redemption_request_spec.rb +36 -0
  193. data/spec/models/dimension_denomination_spec.rb +32 -0
  194. data/spec/models/dimension_spec.rb +114 -0
  195. data/spec/models/discount_summary_spec.rb +66 -0
  196. data/spec/models/error_response_spec.rb +42 -0
  197. data/spec/models/get_client_budget_history200_response_spec.rb +42 -0
  198. data/spec/models/get_client_by_id200_response_spec.rb +36 -0
  199. data/spec/models/get_current_account200_response_spec.rb +36 -0
  200. data/spec/models/get_promotion_by_id200_response_spec.rb +36 -0
  201. data/spec/models/get_promotion_by_id401_response_spec.rb +42 -0
  202. data/spec/models/get_promotion_by_id404_response_spec.rb +42 -0
  203. data/spec/models/get_redemption_stats200_response_spec.rb +42 -0
  204. data/spec/models/get_reward_by_sku200_response_spec.rb +36 -0
  205. data/spec/models/list_client_discounts200_response_spec.rb +42 -0
  206. data/spec/models/list_client_promotions200_response_paging_spec.rb +48 -0
  207. data/spec/models/list_client_promotions200_response_spec.rb +42 -0
  208. data/spec/models/list_client_promotions401_response_spec.rb +42 -0
  209. data/spec/models/list_client_vendor_places200_response_spec.rb +42 -0
  210. data/spec/models/list_clients200_response_spec.rb +42 -0
  211. data/spec/models/list_redemptions200_response_spec.rb +42 -0
  212. data/spec/models/list_rewards200_response_spec.rb +42 -0
  213. data/spec/models/product_summary_spec.rb +64 -0
  214. data/spec/models/product_type_spec.rb +50 -0
  215. data/spec/models/promotion_details_client_spec.rb +42 -0
  216. data/spec/models/promotion_details_rewards_inner_spec.rb +78 -0
  217. data/spec/models/promotion_details_spec.rb +136 -0
  218. data/spec/models/redemption_promotion_spec.rb +58 -0
  219. data/spec/models/redemption_reward_format_spec.rb +50 -0
  220. data/spec/models/redemption_reward_spec.rb +62 -0
  221. data/spec/models/redemption_spec.rb +168 -0
  222. data/spec/models/redemption_value_spec.rb +42 -0
  223. data/spec/models/reward_details_brand_spec.rb +58 -0
  224. data/spec/models/reward_details_dimensions_spec.rb +114 -0
  225. data/spec/models/reward_details_product_spec.rb +64 -0
  226. data/spec/models/reward_details_product_type_spec.rb +50 -0
  227. data/spec/models/reward_details_spec.rb +218 -0
  228. data/spec/models/reward_details_targeting_spec.rb +48 -0
  229. data/spec/models/reward_format_spec.rb +50 -0
  230. data/spec/models/stats_spec.rb +42 -0
  231. data/spec/models/stats_timeframe_spec.rb +42 -0
  232. data/spec/models/stats_values_inner_group_by_inner_spec.rb +60 -0
  233. data/spec/models/stats_values_inner_spec.rb +54 -0
  234. data/spec/models/stats_values_inner_states_spec.rb +84 -0
  235. data/spec/models/user_spec.rb +60 -0
  236. data/spec/models/vendor_place_brand_spec.rb +42 -0
  237. data/spec/models/vendor_place_geoloc_spec.rb +42 -0
  238. data/spec/models/vendor_place_spec.rb +60 -0
  239. data/spec/spec_helper.rb +111 -0
  240. metadata +397 -0
@@ -0,0 +1,224 @@
1
+ =begin
2
+ #Fulfillment API
3
+
4
+ #Public API exposed to ifeelgoods customers.
5
+
6
+ The version of the OpenAPI document: v2
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.24.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Ifeelgoods
17
+ class RedemptionReward < ApiModelBase
18
+ # Uggy Gift Card 10€
19
+ attr_accessor :name
20
+
21
+ # Unique identifier that represents the reward (eg. `APP-ITC-10USD-US`). It must be used with the redeem APIs.
22
+ attr_accessor :sku
23
+
24
+ # Current lifecycle status of the offer (enabled, paused, disabled). Use this field to understand whether the offer is currently intended to be active for your program.
25
+ attr_accessor :status
26
+
27
+ # Current availability outcome of the offer based on its setup and availability checks. This field explains why an offer can or cannot be used at the moment.
28
+ attr_accessor :state
29
+
30
+ class EnumAttributeValidator
31
+ attr_reader :datatype
32
+ attr_reader :allowable_values
33
+
34
+ def initialize(datatype, allowable_values)
35
+ @allowable_values = allowable_values.map do |value|
36
+ case datatype.to_s
37
+ when /Integer/i
38
+ value.to_i
39
+ when /Float/i
40
+ value.to_f
41
+ else
42
+ value
43
+ end
44
+ end
45
+ end
46
+
47
+ def valid?(value)
48
+ !value || allowable_values.include?(value)
49
+ end
50
+ end
51
+
52
+ # Attribute mapping from ruby-style variable name to JSON key.
53
+ def self.attribute_map
54
+ {
55
+ :'name' => :'name',
56
+ :'sku' => :'sku',
57
+ :'status' => :'status',
58
+ :'state' => :'state'
59
+ }
60
+ end
61
+
62
+ # Returns attribute mapping this model knows about
63
+ def self.acceptable_attribute_map
64
+ attribute_map
65
+ end
66
+
67
+ # Returns all the JSON keys this model knows about
68
+ def self.acceptable_attributes
69
+ acceptable_attribute_map.values
70
+ end
71
+
72
+ # Attribute type mapping.
73
+ def self.openapi_types
74
+ {
75
+ :'name' => :'String',
76
+ :'sku' => :'String',
77
+ :'status' => :'String',
78
+ :'state' => :'String'
79
+ }
80
+ end
81
+
82
+ # List of attributes with nullable: true
83
+ def self.openapi_nullable
84
+ Set.new([
85
+ ])
86
+ end
87
+
88
+ # Initializes the object
89
+ # @param [Hash] attributes Model attributes in the form of hash
90
+ def initialize(attributes = {})
91
+ if (!attributes.is_a?(Hash))
92
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Ifeelgoods::RedemptionReward` initialize method"
93
+ end
94
+
95
+ # check to see if the attribute exists and convert string to symbol for hash key
96
+ acceptable_attribute_map = self.class.acceptable_attribute_map
97
+ attributes = attributes.each_with_object({}) { |(k, v), h|
98
+ if (!acceptable_attribute_map.key?(k.to_sym))
99
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Ifeelgoods::RedemptionReward`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
100
+ end
101
+ h[k.to_sym] = v
102
+ }
103
+
104
+ if attributes.key?(:'name')
105
+ self.name = attributes[:'name']
106
+ end
107
+
108
+ if attributes.key?(:'sku')
109
+ self.sku = attributes[:'sku']
110
+ end
111
+
112
+ if attributes.key?(:'status')
113
+ self.status = attributes[:'status']
114
+ end
115
+
116
+ if attributes.key?(:'state')
117
+ self.state = attributes[:'state']
118
+ end
119
+ end
120
+
121
+ # Show invalid properties with the reasons. Usually used together with valid?
122
+ # @return Array for valid properties with the reasons
123
+ def list_invalid_properties
124
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
125
+ invalid_properties = Array.new
126
+ invalid_properties
127
+ end
128
+
129
+ # Check to see if the all the properties in the model are valid
130
+ # @return true if the model is valid
131
+ def valid?
132
+ warn '[DEPRECATED] the `valid?` method is obsolete'
133
+ status_validator = EnumAttributeValidator.new('String', ["disabled", "enabled", "paused"])
134
+ return false unless status_validator.valid?(@status)
135
+ state_validator = EnumAttributeValidator.new('String', ["invalid_reward", "temporarily_unavailable", "invalid_reward_for_redemption_flow", "no_allocation", "ready"])
136
+ return false unless state_validator.valid?(@state)
137
+ true
138
+ end
139
+
140
+ # Custom attribute writer method checking allowed values (enum).
141
+ # @param [Object] status Object to be assigned
142
+ def status=(status)
143
+ validator = EnumAttributeValidator.new('String', ["disabled", "enabled", "paused"])
144
+ unless validator.valid?(status)
145
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
146
+ end
147
+ @status = status
148
+ end
149
+
150
+ # Custom attribute writer method checking allowed values (enum).
151
+ # @param [Object] state Object to be assigned
152
+ def state=(state)
153
+ validator = EnumAttributeValidator.new('String', ["invalid_reward", "temporarily_unavailable", "invalid_reward_for_redemption_flow", "no_allocation", "ready"])
154
+ unless validator.valid?(state)
155
+ fail ArgumentError, "invalid value for \"state\", must be one of #{validator.allowable_values}."
156
+ end
157
+ @state = state
158
+ end
159
+
160
+ # Checks equality by comparing each attribute.
161
+ # @param [Object] Object to be compared
162
+ def ==(o)
163
+ return true if self.equal?(o)
164
+ self.class == o.class &&
165
+ name == o.name &&
166
+ sku == o.sku &&
167
+ status == o.status &&
168
+ state == o.state
169
+ end
170
+
171
+ # @see the `==` method
172
+ # @param [Object] Object to be compared
173
+ def eql?(o)
174
+ self == o
175
+ end
176
+
177
+ # Calculates hash code according to all attributes.
178
+ # @return [Integer] Hash code
179
+ def hash
180
+ [name, sku, status, state].hash
181
+ end
182
+
183
+ # Builds the object from hash
184
+ # @param [Hash] attributes Model attributes in the form of hash
185
+ # @return [Object] Returns the model itself
186
+ def self.build_from_hash(attributes)
187
+ return nil unless attributes.is_a?(Hash)
188
+ attributes = attributes.transform_keys(&:to_sym)
189
+ transformed_hash = {}
190
+ openapi_types.each_pair do |key, type|
191
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
192
+ transformed_hash["#{key}"] = nil
193
+ elsif type =~ /\AArray<(.*)>/i
194
+ # check to ensure the input is an array given that the attribute
195
+ # is documented as an array but the input is not
196
+ if attributes[attribute_map[key]].is_a?(Array)
197
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
198
+ end
199
+ elsif !attributes[attribute_map[key]].nil?
200
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
201
+ end
202
+ end
203
+ new(transformed_hash)
204
+ end
205
+
206
+ # Returns the object in the form of hash
207
+ # @return [Hash] Returns the object in the form of hash
208
+ def to_hash
209
+ hash = {}
210
+ self.class.attribute_map.each_pair do |attr, param|
211
+ value = self.send(attr)
212
+ if value.nil?
213
+ is_nullable = self.class.openapi_nullable.include?(attr)
214
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
215
+ end
216
+
217
+ hash[param] = _to_hash(value)
218
+ end
219
+ hash
220
+ end
221
+
222
+ end
223
+
224
+ end
@@ -0,0 +1,193 @@
1
+ =begin
2
+ #Fulfillment API
3
+
4
+ #Public API exposed to ifeelgoods customers.
5
+
6
+ The version of the OpenAPI document: v2
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.24.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Ifeelgoods
17
+ # Only available when redemption is redeemed
18
+ class RedemptionRewardFormat < ApiModelBase
19
+ attr_accessor :usages
20
+
21
+ attr_accessor :barcode_type
22
+
23
+ class EnumAttributeValidator
24
+ attr_reader :datatype
25
+ attr_reader :allowable_values
26
+
27
+ def initialize(datatype, allowable_values)
28
+ @allowable_values = allowable_values.map do |value|
29
+ case datatype.to_s
30
+ when /Integer/i
31
+ value.to_i
32
+ when /Float/i
33
+ value.to_f
34
+ else
35
+ value
36
+ end
37
+ end
38
+ end
39
+
40
+ def valid?(value)
41
+ !value || allowable_values.include?(value)
42
+ end
43
+ end
44
+
45
+ # Attribute mapping from ruby-style variable name to JSON key.
46
+ def self.attribute_map
47
+ {
48
+ :'usages' => :'usages',
49
+ :'barcode_type' => :'barcode_type'
50
+ }
51
+ end
52
+
53
+ # Returns attribute mapping this model knows about
54
+ def self.acceptable_attribute_map
55
+ attribute_map
56
+ end
57
+
58
+ # Returns all the JSON keys this model knows about
59
+ def self.acceptable_attributes
60
+ acceptable_attribute_map.values
61
+ end
62
+
63
+ # Attribute type mapping.
64
+ def self.openapi_types
65
+ {
66
+ :'usages' => :'Array<String>',
67
+ :'barcode_type' => :'String'
68
+ }
69
+ end
70
+
71
+ # List of attributes with nullable: true
72
+ def self.openapi_nullable
73
+ Set.new([
74
+ ])
75
+ end
76
+
77
+ # Initializes the object
78
+ # @param [Hash] attributes Model attributes in the form of hash
79
+ def initialize(attributes = {})
80
+ if (!attributes.is_a?(Hash))
81
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Ifeelgoods::RedemptionRewardFormat` initialize method"
82
+ end
83
+
84
+ # check to see if the attribute exists and convert string to symbol for hash key
85
+ acceptable_attribute_map = self.class.acceptable_attribute_map
86
+ attributes = attributes.each_with_object({}) { |(k, v), h|
87
+ if (!acceptable_attribute_map.key?(k.to_sym))
88
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Ifeelgoods::RedemptionRewardFormat`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
89
+ end
90
+ h[k.to_sym] = v
91
+ }
92
+
93
+ if attributes.key?(:'usages')
94
+ if (value = attributes[:'usages']).is_a?(Array)
95
+ self.usages = value
96
+ end
97
+ end
98
+
99
+ if attributes.key?(:'barcode_type')
100
+ self.barcode_type = attributes[:'barcode_type']
101
+ end
102
+ end
103
+
104
+ # Show invalid properties with the reasons. Usually used together with valid?
105
+ # @return Array for valid properties with the reasons
106
+ def list_invalid_properties
107
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
108
+ invalid_properties = Array.new
109
+ invalid_properties
110
+ end
111
+
112
+ # Check to see if the all the properties in the model are valid
113
+ # @return true if the model is valid
114
+ def valid?
115
+ warn '[DEPRECATED] the `valid?` method is obsolete'
116
+ barcode_type_validator = EnumAttributeValidator.new('String', ["none", "c128", "qrcode"])
117
+ return false unless barcode_type_validator.valid?(@barcode_type)
118
+ true
119
+ end
120
+
121
+ # Custom attribute writer method checking allowed values (enum).
122
+ # @param [Object] barcode_type Object to be assigned
123
+ def barcode_type=(barcode_type)
124
+ validator = EnumAttributeValidator.new('String', ["none", "c128", "qrcode"])
125
+ unless validator.valid?(barcode_type)
126
+ fail ArgumentError, "invalid value for \"barcode_type\", must be one of #{validator.allowable_values}."
127
+ end
128
+ @barcode_type = barcode_type
129
+ end
130
+
131
+ # Checks equality by comparing each attribute.
132
+ # @param [Object] Object to be compared
133
+ def ==(o)
134
+ return true if self.equal?(o)
135
+ self.class == o.class &&
136
+ usages == o.usages &&
137
+ barcode_type == o.barcode_type
138
+ end
139
+
140
+ # @see the `==` method
141
+ # @param [Object] Object to be compared
142
+ def eql?(o)
143
+ self == o
144
+ end
145
+
146
+ # Calculates hash code according to all attributes.
147
+ # @return [Integer] Hash code
148
+ def hash
149
+ [usages, barcode_type].hash
150
+ end
151
+
152
+ # Builds the object from hash
153
+ # @param [Hash] attributes Model attributes in the form of hash
154
+ # @return [Object] Returns the model itself
155
+ def self.build_from_hash(attributes)
156
+ return nil unless attributes.is_a?(Hash)
157
+ attributes = attributes.transform_keys(&:to_sym)
158
+ transformed_hash = {}
159
+ openapi_types.each_pair do |key, type|
160
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
161
+ transformed_hash["#{key}"] = nil
162
+ elsif type =~ /\AArray<(.*)>/i
163
+ # check to ensure the input is an array given that the attribute
164
+ # is documented as an array but the input is not
165
+ if attributes[attribute_map[key]].is_a?(Array)
166
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
167
+ end
168
+ elsif !attributes[attribute_map[key]].nil?
169
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
170
+ end
171
+ end
172
+ new(transformed_hash)
173
+ end
174
+
175
+ # Returns the object in the form of hash
176
+ # @return [Hash] Returns the object in the form of hash
177
+ def to_hash
178
+ hash = {}
179
+ self.class.attribute_map.each_pair do |attr, param|
180
+ value = self.send(attr)
181
+ if value.nil?
182
+ is_nullable = self.class.openapi_nullable.include?(attr)
183
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
184
+ end
185
+
186
+ hash[param] = _to_hash(value)
187
+ end
188
+ hash
189
+ end
190
+
191
+ end
192
+
193
+ end
@@ -0,0 +1,157 @@
1
+ =begin
2
+ #Fulfillment API
3
+
4
+ #Public API exposed to ifeelgoods customers.
5
+
6
+ The version of the OpenAPI document: v2
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.24.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Ifeelgoods
17
+ class RedemptionValue < ApiModelBase
18
+ attr_accessor :amount
19
+
20
+ attr_accessor :currency
21
+
22
+ # Attribute mapping from ruby-style variable name to JSON key.
23
+ def self.attribute_map
24
+ {
25
+ :'amount' => :'amount',
26
+ :'currency' => :'currency'
27
+ }
28
+ end
29
+
30
+ # Returns attribute mapping this model knows about
31
+ def self.acceptable_attribute_map
32
+ attribute_map
33
+ end
34
+
35
+ # Returns all the JSON keys this model knows about
36
+ def self.acceptable_attributes
37
+ acceptable_attribute_map.values
38
+ end
39
+
40
+ # Attribute type mapping.
41
+ def self.openapi_types
42
+ {
43
+ :'amount' => :'Float',
44
+ :'currency' => :'String'
45
+ }
46
+ end
47
+
48
+ # List of attributes with nullable: true
49
+ def self.openapi_nullable
50
+ Set.new([
51
+ :'currency'
52
+ ])
53
+ end
54
+
55
+ # Initializes the object
56
+ # @param [Hash] attributes Model attributes in the form of hash
57
+ def initialize(attributes = {})
58
+ if (!attributes.is_a?(Hash))
59
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Ifeelgoods::RedemptionValue` initialize method"
60
+ end
61
+
62
+ # check to see if the attribute exists and convert string to symbol for hash key
63
+ acceptable_attribute_map = self.class.acceptable_attribute_map
64
+ attributes = attributes.each_with_object({}) { |(k, v), h|
65
+ if (!acceptable_attribute_map.key?(k.to_sym))
66
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Ifeelgoods::RedemptionValue`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
67
+ end
68
+ h[k.to_sym] = v
69
+ }
70
+
71
+ if attributes.key?(:'amount')
72
+ self.amount = attributes[:'amount']
73
+ end
74
+
75
+ if attributes.key?(:'currency')
76
+ self.currency = attributes[:'currency']
77
+ end
78
+ end
79
+
80
+ # Show invalid properties with the reasons. Usually used together with valid?
81
+ # @return Array for valid properties with the reasons
82
+ def list_invalid_properties
83
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
84
+ invalid_properties = Array.new
85
+ invalid_properties
86
+ end
87
+
88
+ # Check to see if the all the properties in the model are valid
89
+ # @return true if the model is valid
90
+ def valid?
91
+ warn '[DEPRECATED] the `valid?` method is obsolete'
92
+ true
93
+ end
94
+
95
+ # Checks equality by comparing each attribute.
96
+ # @param [Object] Object to be compared
97
+ def ==(o)
98
+ return true if self.equal?(o)
99
+ self.class == o.class &&
100
+ amount == o.amount &&
101
+ currency == o.currency
102
+ end
103
+
104
+ # @see the `==` method
105
+ # @param [Object] Object to be compared
106
+ def eql?(o)
107
+ self == o
108
+ end
109
+
110
+ # Calculates hash code according to all attributes.
111
+ # @return [Integer] Hash code
112
+ def hash
113
+ [amount, currency].hash
114
+ end
115
+
116
+ # Builds the object from hash
117
+ # @param [Hash] attributes Model attributes in the form of hash
118
+ # @return [Object] Returns the model itself
119
+ def self.build_from_hash(attributes)
120
+ return nil unless attributes.is_a?(Hash)
121
+ attributes = attributes.transform_keys(&:to_sym)
122
+ transformed_hash = {}
123
+ openapi_types.each_pair do |key, type|
124
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
125
+ transformed_hash["#{key}"] = nil
126
+ elsif type =~ /\AArray<(.*)>/i
127
+ # check to ensure the input is an array given that the attribute
128
+ # is documented as an array but the input is not
129
+ if attributes[attribute_map[key]].is_a?(Array)
130
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
131
+ end
132
+ elsif !attributes[attribute_map[key]].nil?
133
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
134
+ end
135
+ end
136
+ new(transformed_hash)
137
+ end
138
+
139
+ # Returns the object in the form of hash
140
+ # @return [Hash] Returns the object in the form of hash
141
+ def to_hash
142
+ hash = {}
143
+ self.class.attribute_map.each_pair do |attr, param|
144
+ value = self.send(attr)
145
+ if value.nil?
146
+ is_nullable = self.class.openapi_nullable.include?(attr)
147
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
148
+ end
149
+
150
+ hash[param] = _to_hash(value)
151
+ end
152
+ hash
153
+ end
154
+
155
+ end
156
+
157
+ end