mints 0.0.33 → 0.0.35

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f6d8aee8c612520fb307a45a4eb3c4f51168e1572af251c442a8ea69bbdc96fa
4
- data.tar.gz: 7bf61be045e79a2a841fbeee3779003c20faef08c37fa90691dd5d6c67e4f7ac
3
+ metadata.gz: 9f15395fdd433a83877c1dc1c0bd51909e7898c5dbcd63e10b79edf3bcb94c9c
4
+ data.tar.gz: c6b8098b3b55b3bc481a8ce40be5a8c45999f3c64c27f5ecba8eacb207809488
5
5
  SHA512:
6
- metadata.gz: bc6d575393c24382aa39886ed9ef17aa9032228c00ff0d901475fc8126b6a255835df56545dd3198bdf006d3495eb622e2487a8f3e3a90e6d1ad2187c93e69c5
7
- data.tar.gz: 4a262acdd3178caf9bc3cd785a4eb47843412ee75111868d01482838143f6fd8f1d106ad3b370c6e7742e49dae2b50048e197864e9bc7a40d4dffd2d2567dc8f
6
+ metadata.gz: dbd80b3833430004a88b50067b765f2c41dcc053f2ce306a8788cb4a3b8b0929d091865f8d2e2ae6e15c959149ff7f2d2f9d0126b5424b0dfcac27041875f3d5
7
+ data.tar.gz: ff8a428b1d4cd73d94db4f1553add818fb837c4713fffe4be89452a30a930bc8c98443295205574e340db6bf8a521cd7cd664087f20506b8d557ddec5604f6e8
data/README.md CHANGED
@@ -135,6 +135,14 @@ it to the groups array and set the cache time.
135
135
  - urls:
136
136
  - group_of_urls
137
137
  time: time_that_will_be_applied_to_urls_in_seconds
138
+ sdk:
139
+ debug: false
140
+ # Timeout is specified in seconds
141
+ default_http_timeout: 30 # Allows setting a default timeout for all HTTP calls.
142
+ get_http_timeout: 30 # Allows setting a default timeout for all GET calls.
143
+ post_http_timeout: 30 # Allows setting a default timeout for all POST calls.
144
+ put_http_timeout: 30 # Allows setting a default timeout for all PUT calls.
145
+ delete_http_timeout: 30 # Allows setting a default timeout for all DELETE calls.
138
146
  ```
139
147
 
140
148
  To enable sdk debugging you can change the variable debug.
@@ -156,6 +164,7 @@ functionality, we recommend the use of the template).
156
164
  ## Override default clients
157
165
 
158
166
  If you want other clients for admin/base controller, you need to specify them with the "define_mints_clients" method
167
+
159
168
  Example:
160
169
 
161
170
  ```ruby
@@ -168,6 +177,28 @@ class AdminController < Mints::AdminBaseController
168
177
  end
169
178
  ```
170
179
 
180
+ ## Override default timeouts
181
+
182
+ If you want specific timeouts per instance, you can define mints_sdk_timeouts_config
183
+
184
+ Example:
185
+
186
+ ```ruby
187
+ # admin_controller.rb
188
+
189
+ class AdminController < Mints::AdminBaseController
190
+ def mints_sdk_timeouts_config
191
+ {
192
+ default: 30,
193
+ get: 50,
194
+ post: 40,
195
+ put: 30,
196
+ delete: 10
197
+ }
198
+ end
199
+ end
200
+ ```
201
+
171
202
  ## Error catching
172
203
 
173
204
  The SDK provides different errors that are identified according to the response provided by CXF,
@@ -244,7 +275,6 @@ The current errors are:
244
275
  - Mints::Pub::Ecommerce
245
276
  - [Mints::Pub::Ecommerce::Locations](doc/pub/ecommerce/locations.md)
246
277
  - [Mints::Pub::Ecommerce::Orders](doc/pub/ecommerce/orders.md)
247
- - [Mints::Pub::Ecommerce::Products](doc/pub/ecommerce/products.md)
248
278
 
249
279
  </details>
250
280
 
data/lib/client.rb CHANGED
@@ -4,9 +4,11 @@ require 'httparty'
4
4
  require 'json'
5
5
  require 'addressable'
6
6
  require 'redis'
7
+ require_relative './mints/controllers/concerns/read_config_file'
7
8
 
8
9
  module Mints
9
10
  class Client
11
+ extend ActiveSupport::Concern
10
12
 
11
13
  attr_reader :host
12
14
  attr_reader :api_key
@@ -15,7 +17,17 @@ module Mints
15
17
  attr_accessor :session_token
16
18
  attr_accessor :contact_token_id
17
19
 
18
- def initialize(host, api_key, scope = nil, session_token = nil, contact_token_id = nil, visit_id = nil, debug = false)
20
+ def initialize(
21
+ host,
22
+ api_key,
23
+ scope = nil,
24
+ session_token = nil,
25
+ contact_token_id = nil,
26
+ visit_id = nil,
27
+ debug = false,
28
+ timeouts = {}
29
+ )
30
+
19
31
  @host = host
20
32
  @api_key = api_key
21
33
  @session_token = session_token
@@ -23,6 +35,14 @@ module Mints
23
35
  @visit_id = visit_id
24
36
  @debug = debug
25
37
 
38
+ config = read_config_file('sdk') || {}
39
+
40
+ @default_http_timeout = timeouts.fetch(:default, config.fetch('default_http_timeout', 30))
41
+ @get_http_timeout = timeouts.fetch(:get, config.fetch('get_http_timeout', @default_http_timeout))
42
+ @post_http_timeout = timeouts.fetch(:post, config.fetch('post_http_timeout', @default_http_timeout))
43
+ @put_http_timeout = timeouts.fetch(:put, config.fetch('put_http_timeout', @default_http_timeout))
44
+ @delete_http_timeout = timeouts.fetch(:delete, config.fetch('delete_http_timeout', @default_http_timeout))
45
+
26
46
  self.set_scope(scope)
27
47
  end
28
48
 
@@ -222,22 +242,22 @@ module Mints
222
242
  ##### HTTP CLIENTS ######
223
243
  # Simple HTTP GET
224
244
  def http_get(url, headers = nil)
225
- HTTParty.get(url, headers: headers)
245
+ HTTParty.get(url, headers: headers, timeout: @get_http_timeout)
226
246
  end
227
247
 
228
248
  # Simple HTTP POST
229
249
  def http_post(url, headers = nil, data = nil)
230
- HTTParty.post(url, headers: headers, body: data)
250
+ HTTParty.post(url, headers: headers, body: data, timeout: @post_http_timeout)
231
251
  end
232
252
 
233
253
  # Simple HTTP PUT
234
254
  def http_put(url, headers = nil, data = nil)
235
- HTTParty.put(url, headers: headers, body: data)
255
+ HTTParty.put(url, headers: headers, body: data, timeout: @put_http_timeout)
236
256
  end
237
257
 
238
258
  # Simple HTTP DELETE
239
259
  def http_delete(url, headers = nil, data = nil)
240
- HTTParty.delete(url, headers: headers, body: data)
260
+ HTTParty.delete(url, headers: headers, body: data, timeout: @delete_http_timeout)
241
261
  end
242
262
 
243
263
  # Start contact context
@@ -332,5 +352,41 @@ module Mints
332
352
  end
333
353
  end
334
354
 
355
+ # Timeouts methods
356
+
357
+ def timeout
358
+ {
359
+ default: @default_http_timeout,
360
+ get: @get_http_timeout,
361
+ post: @post_http_timeout,
362
+ put: @put_http_timeout,
363
+ delete: @delete_http_timeout
364
+ }
365
+ end
366
+
367
+ def timeout=(t)
368
+ if t.kind_of? Hash
369
+ t = t.with_indifferent_access
370
+ @default_http_timeout = t[:default] if t[:default]
371
+ @get_http_timeout = t[:get] if t[:get]
372
+ @post_http_timeout = t[:post] if t[:post]
373
+ @put_http_timeout = t[:put] if t[:put]
374
+ @delete_http_timeout = t[:delete] if t[:delete]
375
+ elsif t.kind_of? Integer
376
+ @default_http_timeout = t
377
+ @get_http_timeout = t
378
+ @post_http_timeout = t
379
+ @put_http_timeout = t
380
+ @delete_http_timeout = t
381
+ end
382
+ end
383
+
384
+ def read_config_file(config_key = nil)
385
+ template = ERB.new File.new("#{Rails.root}/mints_config.yml.erb").read
386
+ config = YAML.safe_load template.result(binding)
387
+ config_key ? config[config_key] : config
388
+ rescue StandardError
389
+ nil
390
+ end
335
391
  end
336
392
  end
data/lib/contact.rb CHANGED
@@ -30,9 +30,18 @@ module Mints
30
30
  #
31
31
  # ==== Return
32
32
  # Returns a Contact object
33
- def initialize(host, api_key, session_token = nil, contact_token_id = nil, debug = false)
33
+ def initialize(host, api_key, session_token = nil, contact_token_id = nil, debug = false, timeouts = {})
34
34
  @contact_v1_url = '/api/contact/v1'
35
- @client = Mints::Client.new(host, api_key, 'contact', session_token, contact_token_id, nil, debug)
35
+ @client = Mints::Client.new(
36
+ host,
37
+ api_key,
38
+ 'contact',
39
+ session_token,
40
+ contact_token_id,
41
+ nil,
42
+ debug,
43
+ timeouts
44
+ )
36
45
  end
37
46
 
38
47
  ### V1/CONTACTS ###
@@ -14,6 +14,12 @@ redis_cache:
14
14
  time: time_that_will_be_applied_to_urls_in_seconds
15
15
  sdk:
16
16
  debug: false
17
+ # Timeout is specified in seconds
18
+ default_http_timeout: 30 # Allows setting a default timeout for all HTTP calls.
19
+ get_http_timeout: 30 # Allows setting a default timeout for all GET calls.
20
+ post_http_timeout: 30 # Allows setting a default timeout for all POST calls.
21
+ put_http_timeout: 30 # Allows setting a default timeout for all PUT calls.
22
+ delete_http_timeout: 30 # Allows setting a default timeout for all DELETE calls.
17
23
  cookies_iframe:
18
24
  activated: boolean_value_to_enable_and_disable_cookies_iframe
19
25
  expire_time: expire_time_of_cookies_iframe_in_hours
@@ -46,7 +46,13 @@ module MintsClients
46
46
  visit_id = cookies[:mints_visit_id]
47
47
  contact_token_id = cookies[:mints_contact_id]
48
48
 
49
- @mints_pub = Mints::Pub.new(@host, @api_key, contact_token_id, visit_id, @debug)
49
+ @mints_pub = Mints::Pub.new(
50
+ @host,
51
+ @api_key,
52
+ contact_token_id,
53
+ visit_id,
54
+ @debug
55
+ )
50
56
  end
51
57
 
52
58
  ##
@@ -56,7 +62,13 @@ module MintsClients
56
62
  # Initialize mints contact client
57
63
  contact_session_token = cookies[:mints_contact_session_token]
58
64
  contact_token_id = cookies[:mints_contact_id]
59
- @mints_contact = Mints::Contact.new(@host, @api_key, contact_session_token, contact_token_id, @debug)
65
+ @mints_contact = Mints::Contact.new(
66
+ @host,
67
+ @api_key,
68
+ contact_session_token,
69
+ contact_token_id,
70
+ @debug
71
+ )
60
72
  end
61
73
 
62
74
  ##
@@ -65,7 +77,12 @@ module MintsClients
65
77
  def set_mints_user_client
66
78
  # Initialize mints user client
67
79
  user_session_token = cookies[:mints_user_session_token]
68
- @mints_user = Mints::User.new(@host, @api_key, user_session_token, @debug)
80
+ @mints_user = Mints::User.new(
81
+ @host,
82
+ @api_key,
83
+ user_session_token,
84
+ @debug
85
+ )
69
86
  end
70
87
 
71
88
  ##
@@ -73,6 +90,11 @@ module MintsClients
73
90
  # Initialize the service account client
74
91
  def set_mints_service_account_client
75
92
  # Initialize service account client
76
- @mints_service_account = Mints::User.new(@host, @api_key, @api_key, @debug)
93
+ @mints_service_account = Mints::User.new(
94
+ @host,
95
+ @api_key,
96
+ @api_key,
97
+ @debug
98
+ )
77
99
  end
78
100
  end
@@ -9,12 +9,12 @@ module ReadConfigFile
9
9
 
10
10
  def set_config_variables
11
11
  if File.exists?("#{Rails.root}/mints_config.yml.erb")
12
-
13
12
  template = ERB.new File.new("#{Rails.root}/mints_config.yml.erb").read
14
13
  config = YAML.safe_load template.result(binding)
15
- @host = config["mints"]["host"]
16
- @api_key = config["mints"]["api_key"]
17
- @debug = !!config["sdk"]["debug"]
14
+
15
+ @host = config['mints']['host']
16
+ @api_key = config['mints']['api_key']
17
+ @debug = !!config['sdk']['debug']
18
18
  @redis_config = config['redis_cache']
19
19
  @use_cache = config['redis_cache']['use_cache']
20
20
 
@@ -3,12 +3,12 @@
3
3
  ### V1/ECOMMERCE ###
4
4
 
5
5
  require_relative './locations'
6
- require_relative './products'
6
+ require_relative './product_versions'
7
7
  require_relative './orders'
8
8
 
9
9
  module PublicEcommerce
10
10
  include PublicLocations
11
- include PublicProducts
11
+ include PublicProductVersions
12
12
  include PublicOrders
13
13
 
14
14
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module PublicProducts
3
+ module PublicProductVersions
4
4
  ##
5
5
  # === Get Products.
6
6
  # Get a collection of products.
@@ -10,17 +10,17 @@ module PublicProducts
10
10
  # use_post:: (Boolean) -- Variable to determine if the request is by 'post' or 'get' functions.
11
11
  #
12
12
  # ==== First Example
13
- # @data = @mints_pub.get_products
13
+ # @data = @mints_pub.get_product_versions
14
14
  #
15
15
  # ==== Second Example
16
16
  # options = { fields: "title" }
17
- # @data = @mints_pub.get_products(options)
17
+ # @data = @mints_pub.get_product_versions(options)
18
18
  #
19
19
  # ==== Third Example
20
20
  # options = { fields: "title" }
21
- # @data = @mints_pub.get_products(options, false)
22
- def get_products(options = nil, use_post = true)
23
- get_query_results('/ecommerce/products', options, use_post)
21
+ # @data = @mints_pub.get_product_versions(options, false)
22
+ def get_product_versions(options = nil, use_post = true)
23
+ get_query_results('/ecommerce/product-versions', options, use_post)
24
24
  end
25
25
 
26
26
  ##
@@ -32,14 +32,14 @@ module PublicProducts
32
32
  # options:: (Hash) -- List of {Single Resource Options}[#class-Mints::Pub-label-Single+resource+options] shown above can be used as parameter.
33
33
  #
34
34
  # ==== First Example
35
- # @data = @mints_pub.get_product("product_slug")
35
+ # @data = @mints_pub.get_product_version("product_slug")
36
36
  #
37
37
  # ==== Second Example
38
38
  # options = {
39
39
  # fields: 'id, slug'
40
40
  # }
41
- # @data = @mints_pub.get_product("lego-set", options)
42
- def get_product(slug, options = nil)
43
- @client.raw('get', "/ecommerce/products/#{slug}", options)
41
+ # @data = @mints_pub.get_product_version("lego-set", options)
42
+ def get_product_version(slug, options = nil)
43
+ @client.raw('get', "/ecommerce/product-versions/#{slug}", options)
44
44
  end
45
45
  end
data/lib/pub.rb CHANGED
@@ -81,8 +81,17 @@ module Mints
81
81
  #
82
82
  # ==== Return
83
83
  # Returns a Client object.
84
- def initialize(host, api_key, contact_token_id = nil, visit_id = nil, debug = false)
85
- @client = Mints::Client.new(host, api_key, 'public', nil, contact_token_id, visit_id, debug)
84
+ def initialize(host, api_key, contact_token_id = nil, visit_id = nil, debug = false, timeouts = {})
85
+ @client = Mints::Client.new(
86
+ host,
87
+ api_key,
88
+ 'public',
89
+ nil,
90
+ contact_token_id,
91
+ visit_id,
92
+ debug,
93
+ timeouts
94
+ )
86
95
  end
87
96
 
88
97
  ##
@@ -4,6 +4,7 @@ require_relative './assets'
4
4
  require_relative './content_instances'
5
5
  require_relative './content_templates'
6
6
  require_relative './conversations'
7
+ require_relative './conversation_templates'
7
8
  require_relative './dam'
8
9
  require_relative './forms'
9
10
  require_relative './message_templates'
@@ -18,6 +19,7 @@ module Content
18
19
  include ContentInstances
19
20
  include ContentTemplates
20
21
  include Conversations
22
+ include ConversationTemplates
21
23
  include DAM
22
24
  include Forms
23
25
  include MessageTemplates
@@ -0,0 +1,148 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ConversationTemplates
4
+ ##
5
+ # == Conversation templates
6
+ #
7
+
8
+ ###
9
+ # === Get conversation templates.
10
+ # Get a collection of conversation templates.
11
+ #
12
+ # ==== Parameters
13
+ # options:: (Hash) -- List of Resource Collection Options shown above can be used as parameter.
14
+ #
15
+ # ==== First Example
16
+ # @data = @mints_user.get_conversations
17
+ #
18
+ # ==== Second Example
19
+ # options = { fields: 'title' }
20
+ # @data = @mints_user.get_conversation_templates(options)
21
+ def get_conversation_templates(options = nil)
22
+ @client.raw('get', '/content/conversation-templates', options)
23
+ end
24
+
25
+ # === Get conversation template.
26
+ # Get a conversation template info.
27
+ #
28
+ # ==== Parameters
29
+ # id:: (Integer) -- Conversation id.
30
+ # options:: (Hash) -- List of Resource Collection Options shown above can be used as parameter.
31
+ #
32
+ # ==== First Example
33
+ # @data = @mints_user.get_conversation_template(1)
34
+ #
35
+ # ==== Second Example
36
+ # options = { fields: 'title' }
37
+ # @data = @mints_user.get_conversation_template(1, options)
38
+ def get_conversation_template(id, options = nil)
39
+ @client.raw('get', "/content/conversation-templates/#{id}", options)
40
+ end
41
+
42
+ # === Create conversation template.
43
+ # Create a conversation template with data.
44
+ #
45
+ # ==== Parameters
46
+ # data:: (Hash) -- Data to be submitted.
47
+ #
48
+ # ==== Example
49
+ # data = {
50
+ # title: 'New Conversation Template',
51
+ # slug: 'new-conversation-template'
52
+ # }
53
+ # @data = @mints_user.create_conversation_template(data)
54
+ def create_conversation_template(data, options = nil)
55
+ @client.raw('post', '/content/conversation-templates', options, data_transform(data))
56
+ end
57
+
58
+ # === Update conversation template.
59
+ # Update a conversation template info.
60
+ #
61
+ # ==== Parameters
62
+ # id:: (Integer) -- Conversation template id.
63
+ # data:: (Hash) -- Data to be submitted.
64
+ #
65
+ # ==== Example
66
+ # data = {
67
+ # title: 'Conversation Template'
68
+ # slug: 'conversation-template'
69
+ # }
70
+ # @data = @mints_user.update_conversation_template(13, data)
71
+ def update_conversation_template(id, data, options = nil)
72
+ @client.raw('put', "/content/conversation-templates/#{id}", options, data_transform(data))
73
+ end
74
+
75
+ # === Delete conversation template.
76
+ # Delete a conversation template.
77
+ #
78
+ # ==== Parameters
79
+ # id:: (Integer) -- Conversation template id.
80
+ #
81
+ # ==== Example
82
+ # @data = @mints_user.delete_conversation_template(11)
83
+ def delete_conversation_template(id)
84
+ @client.raw('delete', "/content/conversation-templates/#{id}")
85
+ end
86
+
87
+ # === Duplicate conversation template.
88
+ # Duplicate a conversation template.
89
+ #
90
+ # ==== Parameters
91
+ # id:: (Integer) -- Conversation template id.
92
+ # data:: (Hash) -- Data to be submitted.
93
+ #
94
+ # ==== Example
95
+ # data = {
96
+ # title: 'Duplicated conversation template'
97
+ # }
98
+ # @data = @mints_user.duplicate_conversation_template(13, data)
99
+ def duplicate_conversation_template(id, data)
100
+ @client.raw('put', "/content/conversation-templates/#{id}/duplicate", nil, data_transform(data))
101
+ end
102
+
103
+ # === Update activation words.
104
+ # Update activation words in a conversation template.
105
+ #
106
+ # ==== Parameters
107
+ # conversation_template_id:: (Integer) -- Conversation template id.
108
+ # data:: (Hash) -- Data to be submitted.
109
+ #
110
+ # ==== Example
111
+ # data = {
112
+ # activationWords: %w[ hello world ],
113
+ # formId: 1
114
+ # }
115
+ # @data = @mints_user.attach_user_in_conversation(13, data)
116
+ def update_activation_words(conversation_template_id, data)
117
+ url = "/content/conversation-templates/#{conversation_template_id}/activation-words"
118
+ @client.raw('post', url, nil, data_transform(data))
119
+ end
120
+
121
+ # === Attach form in conversation template.
122
+ # Attach a form in the conversation template.
123
+ #
124
+ # ==== Parameters
125
+ # id:: (Integer) -- Conversation template id.
126
+ # data:: (Hash) -- Data to be submitted.
127
+ #
128
+ # ==== Example
129
+ # data = {
130
+ # form_id: 2
131
+ # }
132
+ # @data = @mints_user.attach_form_in_conversation_template(13, data)
133
+ def attach_form_in_conversation_template(id, data)
134
+ @client.raw('post', "/content/conversation-templates/#{id}/attach-form", nil, data_transform(data))
135
+ end
136
+
137
+ # === Detach form in conversation template.
138
+ # Detach a form in a conversation template.
139
+ #
140
+ # ==== Parameters
141
+ # id:: (Integer) -- Conversation template id.
142
+ #
143
+ # ==== Example
144
+ # @data = @mints_user.detach_form_in_conversation_template(conversation_id, form_id)
145
+ def detach_form_in_conversation_template(id, form_id)
146
+ @client.raw('delete', "/content/conversation-templates/#{id}/detach-form/#{form_id}")
147
+ end
148
+ end
@@ -174,35 +174,4 @@ module Conversations
174
174
  @client.raw('post', "/content/conversations/#{id}/detach-contact", nil, data_transform(data))
175
175
  end
176
176
 
177
- # === Attach form in conversation.
178
- # Attach a form in a conversation.
179
- #
180
- # ==== Parameters
181
- # id:: (Integer) -- Conversation id.
182
- # data:: (Hash) -- Data to be submitted.
183
- #
184
- # ==== Example
185
- # data = {
186
- # form_id: 2
187
- # }
188
- # @data = @mints_user.attach_form_in_conversation(1, data)
189
- def attach_form_in_conversation(id, data)
190
- @client.raw('post', "/content/conversations/#{id}/attach-form", nil, data_transform(data))
191
- end
192
-
193
- # === Detach form in conversation.
194
- # Detach a form in a conversation.
195
- #
196
- # ==== Parameters
197
- # id:: (Integer) -- Contact id.
198
- # data:: (Hash) -- Data to be submitted.
199
- #
200
- # ==== Example
201
- # data = {
202
- # form_id: 2
203
- # }
204
- # @data = @mints_user.detach_form_in_conversation(1, data)
205
- def detach_form_in_conversation(id, data)
206
- @client.raw('post', "/content/conversations/#{id}/detach-form", nil, data_transform(data))
207
- end
208
177
  end
@@ -9,6 +9,7 @@ require_relative './price_lists'
9
9
  require_relative './product_templates'
10
10
  require_relative './product_variations'
11
11
  require_relative './products'
12
+ require_relative './product_versions'
12
13
  require_relative './skus'
13
14
  require_relative './taxes'
14
15
  require_relative './variant_options'
@@ -25,6 +26,7 @@ module Ecommerce
25
26
  include ProductTemplates
26
27
  include ProductVariations
27
28
  include Products
29
+ include ProductVersions
28
30
  include Skus
29
31
  include Taxes
30
32
  include VariantOptions
@@ -62,9 +62,9 @@ module Locations
62
62
  # data = {
63
63
  # title: 'New Location Modified'
64
64
  # }
65
- # @data = @mints_user.update_location(5, data.to_json)
65
+ # @data = @mints_user.update_location(5, data)
66
66
  def update_location(id, data, options = nil)
67
- @client.raw('put', "/ecommerce/locations/#{id}", options, data)
67
+ @client.raw('put', "/ecommerce/locations/#{id}", options, data_transform(data))
68
68
  end
69
69
 
70
70
  # === Delete location.
@@ -0,0 +1,107 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ProductVersions
4
+ ##
5
+ # === Get Product versions.
6
+ # Get a collection of product versions.
7
+ #
8
+ # ==== Parameters
9
+ # options:: (Hash) -- List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter.
10
+ # use_post:: (Boolean) -- Variable to determine if the request is by 'post' or 'get' functions.
11
+ #
12
+ # ==== First Example
13
+ # @data = @mints_user.get_product_versions
14
+ #
15
+ # ==== Second Example
16
+ # options = { fields: "title" }
17
+ # @data = @mints_user.get_product_versions(options)
18
+ #
19
+ # ==== Third Example
20
+ # options = { fields: "title" }
21
+ # @data = @mints_user.get_product_versions(options, false)
22
+ def get_product_versions(options = nil, use_post = true)
23
+ get_query_results('/ecommerce/product-versions', options, use_post)
24
+ end
25
+
26
+ ##
27
+ # === Get Product version.
28
+ # Get a single product version.
29
+ #
30
+ # ==== Parameters
31
+ # slug:: (String) -- It's the string identifier generated by Mints.
32
+ # options:: (Hash) -- List of {Single Resource Options}[#class-Mints::Pub-label-Single+resource+options] shown above can be used as parameter.
33
+ #
34
+ # ==== First Example
35
+ # @data = @mints_user.get_product_version("product_slug")
36
+ #
37
+ # ==== Second Example
38
+ # options = {
39
+ # fields: 'id, slug'
40
+ # }
41
+ # @data = @mints_user.get_product_version("lego-set", options)
42
+ def get_product_version(slug, options = nil)
43
+ @client.raw('get', "/ecommerce/product-versions/#{slug}", options)
44
+ end
45
+
46
+ # === Create product version.
47
+ # Create a product version with data.
48
+ #
49
+ # ==== Parameters
50
+ # data:: (Hash) -- Data to be submitted.
51
+ #
52
+ # ==== Example
53
+ # data = {
54
+ # title: 'New Product Version',
55
+ # slug: 'new-product-version',
56
+ # product_id: 1
57
+ # }
58
+ # @data = @mints_user.create_product_version(data)
59
+ def create_product_version(data, options = nil)
60
+ @client.raw('post', '/ecommerce/product-versions', options, data_transform(data))
61
+ end
62
+
63
+ # === Update product version.
64
+ # Update a product version info.
65
+ #
66
+ # ==== Parameters
67
+ # id:: (Integer) -- Product version id.
68
+ # data:: (Hash) -- Data to be submitted.
69
+ #
70
+ # ==== Example
71
+ # data = {
72
+ # title: 'New Product Version Modified',
73
+ # slug: 'new-product-version',
74
+ # product_id: 1
75
+ # }
76
+ # @data = @mints_user.update_product_version(9, data)
77
+ def update_product_version(id, data, options = nil)
78
+ @client.raw('put', "/ecommerce/product-versions/#{id}", options, data_transform(data))
79
+ end
80
+
81
+ # === Delete product version.
82
+ # Delete a product version.
83
+ #
84
+ # ==== Parameters
85
+ # id:: (Integer) -- Product version id.
86
+ #
87
+ def delete_product_version(id)
88
+ @client.raw('delete', "/ecommerce/product-versions/#{id}")
89
+ end
90
+
91
+ # === Publish product version.
92
+ # Publish a product version.
93
+ #
94
+ # ==== Parameters
95
+ # id:: (Integer) -- Product version id.
96
+ # data:: (Hash) -- Data to be submitted.
97
+ #
98
+ # ==== Example
99
+ # data = {
100
+ # title: 'New Publish'
101
+ # }
102
+ # @data = @mints_user.publish_product_version(2, data)
103
+ def publish_product_version(id, data)
104
+ @client.raw('put', "/ecommerce/product-versions/#{id}/publish", nil, data_transform(data))
105
+ end
106
+
107
+ end
@@ -36,22 +36,6 @@ module Products
36
36
  @client.raw('delete', "/ecommerce/products/#{id}")
37
37
  end
38
38
 
39
- # === Publish product.
40
- # Publish a product.
41
- #
42
- # ==== Parameters
43
- # id:: (Integer) -- Product id.
44
- # data:: (Hash) -- Data to be submitted.
45
- #
46
- # ==== Example
47
- # data = {
48
- # title: 'New Publish'
49
- # }
50
- # @data = @mints_user.publish_product(2, data)
51
- def publish_product(id, data)
52
- @client.raw('put', "/ecommerce/products/#{id}/publish", nil, data_transform(data))
53
- end
54
-
55
39
  # === Schedule product.
56
40
  # Schedule a product.
57
41
  #
data/lib/user.rb CHANGED
@@ -51,8 +51,17 @@ module Mints
51
51
 
52
52
  attr_reader :client
53
53
 
54
- def initialize(host, api_key, session_token = nil, debug = false)
55
- @client = Mints::Client.new(host, api_key, 'user', session_token, nil, nil, debug)
54
+ def initialize(host, api_key, session_token = nil, debug = false, timeouts = {})
55
+ @client = Mints::Client.new(
56
+ host,
57
+ api_key,
58
+ 'user',
59
+ session_token,
60
+ nil,
61
+ nil,
62
+ debug,
63
+ timeouts
64
+ )
56
65
  end
57
66
 
58
67
  def login(email, password)
metadata CHANGED
@@ -1,33 +1,33 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mints
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.33
4
+ version: 0.0.35
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ruben Gomez Garcia, Omar Mora, Luis Payan, Oscar Castillo, Fabian Garcia
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-31 00:00:00.000000000 Z
11
+ date: 2023-10-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 2.7.0
20
- - - ">="
20
+ - - "~>"
21
21
  - !ruby/object:Gem::Version
22
22
  version: 2.7.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - "~>"
27
+ - - ">="
28
28
  - !ruby/object:Gem::Version
29
29
  version: 2.7.0
30
- - - ">="
30
+ - - "~>"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 2.7.0
33
33
  - !ruby/object:Gem::Dependency
@@ -68,40 +68,40 @@ dependencies:
68
68
  name: rails-reverse-proxy
69
69
  requirement: !ruby/object:Gem::Requirement
70
70
  requirements:
71
- - - "~>"
71
+ - - ">="
72
72
  - !ruby/object:Gem::Version
73
73
  version: 0.9.1
74
- - - ">="
74
+ - - "~>"
75
75
  - !ruby/object:Gem::Version
76
76
  version: 0.9.1
77
77
  type: :runtime
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - "~>"
81
+ - - ">="
82
82
  - !ruby/object:Gem::Version
83
83
  version: 0.9.1
84
- - - ">="
84
+ - - "~>"
85
85
  - !ruby/object:Gem::Version
86
86
  version: 0.9.1
87
87
  - !ruby/object:Gem::Dependency
88
88
  name: redis
89
89
  requirement: !ruby/object:Gem::Requirement
90
90
  requirements:
91
- - - "~>"
91
+ - - ">="
92
92
  - !ruby/object:Gem::Version
93
93
  version: 4.2.2
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: 4.2.2
97
97
  type: :runtime
98
98
  prerelease: false
99
99
  version_requirements: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: 4.2.2
104
- - - ">="
104
+ - - "~>"
105
105
  - !ruby/object:Gem::Version
106
106
  version: 4.2.2
107
107
  - !ruby/object:Gem::Dependency
@@ -177,7 +177,7 @@ files:
177
177
  - lib/pub/ecommerce/ecommerce.rb
178
178
  - lib/pub/ecommerce/locations.rb
179
179
  - lib/pub/ecommerce/orders.rb
180
- - lib/pub/ecommerce/products.rb
180
+ - lib/pub/ecommerce/product_versions.rb
181
181
  - lib/user.rb
182
182
  - lib/user/config/api_keys.rb
183
183
  - lib/user/config/appointments.rb
@@ -199,6 +199,7 @@ files:
199
199
  - lib/user/content/content.rb
200
200
  - lib/user/content/content_instances.rb
201
201
  - lib/user/content/content_templates.rb
202
+ - lib/user/content/conversation_templates.rb
202
203
  - lib/user/content/conversations.rb
203
204
  - lib/user/content/dam.rb
204
205
  - lib/user/content/forms.rb
@@ -227,6 +228,7 @@ files:
227
228
  - lib/user/ecommerce/price_lists.rb
228
229
  - lib/user/ecommerce/product_templates.rb
229
230
  - lib/user/ecommerce/product_variations.rb
231
+ - lib/user/ecommerce/product_versions.rb
230
232
  - lib/user/ecommerce/products.rb
231
233
  - lib/user/ecommerce/skus.rb
232
234
  - lib/user/ecommerce/taxes.rb
@@ -258,7 +260,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
258
260
  - !ruby/object:Gem::Version
259
261
  version: '0'
260
262
  requirements: []
261
- rubygems_version: 3.1.6
263
+ rubygems_version: 3.0.3.1
262
264
  signing_key:
263
265
  specification_version: 4
264
266
  summary: MINTS gem allows to connect your Rails App to MINTS.CLOUD