mints 0.0.17 → 0.0.21
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 +4 -4
- data/Gemfile +2 -1
- data/lib/client.rb +96 -37
- data/lib/contact.rb +659 -94
- data/lib/generators/mints_files_generator.rb +6 -0
- data/lib/generators/mints_link.rb +61 -0
- data/lib/generators/short_link_controller.rb +41 -0
- data/lib/mints/controllers/admin_base_controller.rb +2 -2
- data/lib/mints/controllers/base_api_controller.rb +12 -11
- data/lib/mints/controllers/base_controller.rb +38 -9
- data/lib/mints_helper.rb +47 -0
- data/lib/pub.rb +258 -139
- data/lib/user/config/api_keys.rb +65 -0
- data/lib/user/config/appointments.rb +221 -0
- data/lib/user/config/attribute_groups.rb +77 -0
- data/lib/user/config/attributes.rb +86 -0
- data/lib/user/config/calendars.rb +89 -0
- data/lib/user/config/config.rb +65 -0
- data/lib/user/config/importers.rb +184 -0
- data/lib/user/config/public_folders.rb +108 -0
- data/lib/user/config/relationships.rb +138 -0
- data/lib/user/config/roles.rb +84 -0
- data/lib/user/config/seeds.rb +14 -0
- data/lib/user/config/system_settings.rb +53 -0
- data/lib/user/config/tags.rb +63 -0
- data/lib/user/config/taxonomies.rb +124 -0
- data/lib/user/config/teams.rb +70 -0
- data/lib/user/config/users.rb +76 -0
- data/lib/user/contacts/contacts.rb +21 -0
- data/lib/user/content/assets.rb +260 -0
- data/lib/user/content/content.rb +235 -0
- data/lib/user/content/content_instances.rb +147 -0
- data/lib/user/content/content_templates.rb +111 -0
- data/lib/user/content/conversations.rb +174 -0
- data/lib/user/content/dam.rb +88 -0
- data/lib/user/content/forms.rb +168 -0
- data/lib/user/content/message_templates.rb +162 -0
- data/lib/user/content/messages.rb +90 -0
- data/lib/user/content/pages.rb +81 -0
- data/lib/user/content/stories.rb +164 -0
- data/lib/user/content/story_templates.rb +95 -0
- data/lib/user/crm/companies.rb +111 -0
- data/lib/user/crm/contacts.rb +312 -0
- data/lib/user/crm/crm.rb +21 -0
- data/lib/user/crm/deals.rb +111 -0
- data/lib/user/crm/favorites.rb +17 -0
- data/lib/user/crm/segments.rb +132 -0
- data/lib/user/crm/users.rb +22 -0
- data/lib/user/crm/workflow_step_objects.rb +89 -0
- data/lib/user/crm/workflow_steps.rb +49 -0
- data/lib/user/crm/workflows.rb +70 -0
- data/lib/user/ecommerce/ecommerce.rb +29 -0
- data/lib/user/ecommerce/item_prices.rb +86 -0
- data/lib/user/ecommerce/locations.rb +166 -0
- data/lib/user/ecommerce/order_items_groups.rb +109 -0
- data/lib/user/ecommerce/order_statuses.rb +26 -0
- data/lib/user/ecommerce/orders.rb +258 -0
- data/lib/user/ecommerce/price_lists.rb +73 -0
- data/lib/user/ecommerce/product_templates.rb +104 -0
- data/lib/user/ecommerce/product_variations.rb +129 -0
- data/lib/user/ecommerce/products.rb +169 -0
- data/lib/user/ecommerce/skus.rb +88 -0
- data/lib/user/ecommerce/taxes.rb +82 -0
- data/lib/user/ecommerce/variant_options.rb +69 -0
- data/lib/user/ecommerce/variant_values.rb +72 -0
- data/lib/user/helpers/helpers.rb +113 -0
- data/lib/user/helpers/object_activities.rb +83 -0
- data/lib/user/helpers/object_folders.rb +82 -0
- data/lib/user/helpers/user_folders.rb +83 -0
- data/lib/user/marketing/marketing.rb +120 -0
- data/lib/user/profile/profile.rb +111 -0
- data/lib/user.rb +24 -368
- metadata +64 -2
data/lib/contact.rb
CHANGED
@@ -1,51 +1,119 @@
|
|
1
1
|
require_relative "./client.rb"
|
2
|
+
require_relative "./mints_helper.rb"
|
2
3
|
include ActionController::Cookies
|
3
4
|
module Mints
|
4
5
|
class Contact
|
5
6
|
attr_reader :client
|
6
7
|
##
|
7
8
|
# === Initialize.
|
8
|
-
# Class constructor
|
9
|
+
# Class constructor.
|
9
10
|
#
|
11
|
+
# ==== Parameters
|
12
|
+
# host:: (String) -- It's the visitor IP.
|
13
|
+
# api_key:: (String) -- Mints instance api key.
|
14
|
+
# contact_token_id:: (Integer) -- Cookie 'mints_contact_id' value (mints_contact_token).
|
15
|
+
#
|
16
|
+
# ==== Return
|
17
|
+
# Returns a Contact object
|
10
18
|
def initialize(host, api_key, session_token = nil, contact_token_id = nil, debug = false)
|
11
|
-
@
|
19
|
+
@contact_v1_url = '/api/contact/v1'
|
20
|
+
@client = Mints::Client.new(host, api_key, "contact", session_token, contact_token_id, nil, debug)
|
12
21
|
end
|
13
22
|
|
23
|
+
### V1/CONTACTS ###
|
24
|
+
|
14
25
|
##
|
15
|
-
# ===
|
16
|
-
#
|
26
|
+
# === Register.
|
27
|
+
# Register a contact.
|
17
28
|
#
|
18
|
-
# ==== Parameters
|
19
|
-
#
|
20
|
-
# * +password+ - [_String_] The password of the email.
|
29
|
+
# ==== Parameters
|
30
|
+
# data:: (Hash) -- It's the register data.
|
21
31
|
#
|
22
32
|
# ==== Example
|
23
|
-
#
|
33
|
+
# data = {
|
34
|
+
# "email": "email@example.com",
|
35
|
+
# "given_name": "Given Name",
|
36
|
+
# "last_name": "Last Name",
|
37
|
+
# "password": "password"
|
38
|
+
# }
|
39
|
+
# @mints_contact.register(data);
|
40
|
+
def register(data)
|
41
|
+
return @client.raw("post", "/contacts/register", nil, data_transform(data))
|
42
|
+
end
|
43
|
+
|
44
|
+
##
|
45
|
+
# === Login.
|
46
|
+
# Starts a contact session.
|
47
|
+
#
|
48
|
+
# ==== Parameters
|
49
|
+
# email:: (String) -- The email that will be logged.
|
50
|
+
# password:: (String) -- The password of the email.
|
24
51
|
#
|
52
|
+
# ==== Example
|
53
|
+
# @mints_contact.login("email@example.com", "password")
|
25
54
|
def login(email, password)
|
26
55
|
data = {
|
27
56
|
email: email,
|
28
57
|
password: password
|
29
58
|
}
|
30
|
-
response = @client.raw("post", "/contacts/login", nil, {data: data})
|
59
|
+
response = @client.raw("post", "/contacts/login", nil, {data: data}.to_json)
|
31
60
|
if response.key? "session_token"
|
32
61
|
@client.session_token = response["session_token"]
|
33
62
|
end
|
34
63
|
return response
|
35
64
|
end
|
36
65
|
|
66
|
+
##
|
67
|
+
# === Recover Password.
|
68
|
+
# Send a email that contains a token to a contact. That token will be used in reset_password to establish a new password.
|
69
|
+
#
|
70
|
+
# ==== Parameters
|
71
|
+
# data:: (Hash) -- It's a data key where will be hosted the destination email.
|
72
|
+
#
|
73
|
+
# ==== Example
|
74
|
+
# data = { "email": "email@example.com" }
|
75
|
+
# @mints_contact.recover_password(data)
|
76
|
+
def recover_password(data)
|
77
|
+
return @client.raw("post", "/contacts/recover-password", nil, data_transform(data))
|
78
|
+
end
|
79
|
+
|
80
|
+
##
|
81
|
+
# === Reset Password.
|
82
|
+
# Reset password using a token. The token is obtained by recover_password method.
|
83
|
+
#
|
84
|
+
# ==== Parameters
|
85
|
+
# data:: (Hash) -- It's a set of data which contains all the information to reset a contact password.
|
86
|
+
#
|
87
|
+
# ==== Example
|
88
|
+
# data = {
|
89
|
+
# "email": "email@example.com",
|
90
|
+
# "password": "password",
|
91
|
+
# "password_confirmation": "password",
|
92
|
+
# "token": "644aa3aa0831d782cc42e42b11aedea9a2234389af4f429a8d96651295ecfa09"
|
93
|
+
# }
|
94
|
+
# @mints_contact.reset_password(data)
|
95
|
+
def reset_password(data)
|
96
|
+
return @client.raw("post", "/contacts/reset-password", nil, data_transform(data))
|
97
|
+
end
|
98
|
+
|
99
|
+
##
|
100
|
+
# === OAuth Login.
|
101
|
+
# Login a contact using oauth.
|
102
|
+
def oauth_login(data)
|
103
|
+
return @client.raw("post", "/contacts/oauth-login", nil, data)
|
104
|
+
end
|
105
|
+
|
37
106
|
##
|
38
107
|
# === Magic Link Login.
|
39
108
|
# Starts a contact session with a token received in the contact email. The token will be received by send_magic_link method.
|
40
109
|
#
|
41
|
-
# ==== Parameters
|
42
|
-
#
|
110
|
+
# ==== Parameters
|
111
|
+
# token:: (String) -- The email token that will be used to log in.
|
43
112
|
#
|
44
113
|
# ==== Example
|
45
114
|
# @mints_contact.magic_link_login(
|
46
115
|
# "d8618c6d-a165-41cb-b3ec-d053cbf30059:zm54HtRdfHED8dpILZpjyqjPIceiaXNLfOklqM92fveBS0nDtyPYBlI4CPlPe3zq"
|
47
116
|
# )
|
48
|
-
#
|
49
117
|
def magic_link_login(token)
|
50
118
|
response = @client.raw("get", "/contacts/magic-link-login/#{token}", nil, '/api/v1')
|
51
119
|
if response.key? "session_token"
|
@@ -55,22 +123,21 @@ module Mints
|
|
55
123
|
end
|
56
124
|
|
57
125
|
##
|
58
|
-
# === Send Magic Link
|
126
|
+
# === Send Magic Link.
|
59
127
|
# Send magic link to contact by email. That magic link will be used in magic_link_login method.
|
60
128
|
#
|
61
|
-
# ==== Parameters
|
62
|
-
#
|
63
|
-
#
|
64
|
-
#
|
65
|
-
#
|
66
|
-
#
|
129
|
+
# ==== Parameters
|
130
|
+
# email:: (String) -- Contact's email.
|
131
|
+
# template_slug:: (String) -- Email template's slug to be used in the email.
|
132
|
+
# redirectUrl:: (String) -- Url to be redirected in the implemented page.
|
133
|
+
# lifeTime:: (Integer) -- Maximum time of use in minutes.
|
134
|
+
# maxVisits:: (Integer) -- The maximum number of uses of a token.
|
67
135
|
#
|
68
136
|
# ==== First Example
|
69
|
-
# @mints_contact.send_magic_link("
|
137
|
+
# @mints_contact.send_magic_link("email@example.com", "template_slug")
|
70
138
|
#
|
71
139
|
# ==== Second Example
|
72
|
-
# @mints_contact.send_magic_link("
|
73
|
-
#
|
140
|
+
# @mints_contact.send_magic_link("email@example.com", "template_slug", "", 1440, 3)
|
74
141
|
def send_magic_link(email, template_slug, redirectUrl = '', lifeTime = 1440, maxVisits = nil)
|
75
142
|
data = {
|
76
143
|
email: email,
|
@@ -79,20 +146,67 @@ module Mints
|
|
79
146
|
redirectUrl: redirectUrl,
|
80
147
|
templateId: template_slug
|
81
148
|
}
|
82
|
-
response = @client.raw("post", "/contacts/magic-link", nil, { data: data }, '/api/v1')
|
149
|
+
response = @client.raw("post", "/contacts/magic-link", nil, { data: data }.to_json, '/api/v1')
|
83
150
|
return response
|
84
151
|
end
|
85
152
|
|
153
|
+
### CONTACT/V1 ###
|
154
|
+
|
155
|
+
##
|
156
|
+
# === Me.
|
157
|
+
# Get contact logged info.
|
158
|
+
#
|
159
|
+
# ==== Parameters
|
160
|
+
# # options:: (Hash) -- List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter.
|
161
|
+
#
|
162
|
+
# ==== First Example
|
163
|
+
# @data = @mints_contact.me
|
164
|
+
#
|
165
|
+
# ==== Second Example
|
166
|
+
# options = {
|
167
|
+
# "attributes": true,
|
168
|
+
# "taxonomies": true
|
169
|
+
# }
|
170
|
+
# @data = @mints_contact.me(options)
|
171
|
+
def me(options = nil)
|
172
|
+
return @client.raw("get", "/me", options, nil, @contact_v1_url)
|
173
|
+
end
|
174
|
+
|
175
|
+
##
|
176
|
+
# === Status.
|
177
|
+
# Get contact logged status.
|
178
|
+
#
|
179
|
+
# ==== Example
|
180
|
+
# @data = @mints_contact.status
|
181
|
+
def status
|
182
|
+
return @client.raw("get", "/status", nil, nil, @contact_v1_url)
|
183
|
+
end
|
184
|
+
|
185
|
+
##
|
186
|
+
# === Update.
|
187
|
+
# Update logged contact attributes.
|
188
|
+
#
|
189
|
+
# ==== Parameters
|
190
|
+
# data:: (Hash) -- It's the data to update with a session active.
|
191
|
+
#
|
192
|
+
# ==== Example
|
193
|
+
# data = {
|
194
|
+
# "given_name": "Given Name",
|
195
|
+
# "last_name": "Last Name"
|
196
|
+
# }
|
197
|
+
# @data = @mints_contact.update(data)
|
198
|
+
def update(data)
|
199
|
+
return @client.raw("put", "/update", nil, data_transform(data), @contact_v1_url)
|
200
|
+
end
|
201
|
+
|
86
202
|
##
|
87
203
|
# === Logout.
|
88
204
|
# Ends a contact session previously logged.
|
89
205
|
#
|
90
206
|
# ==== Example
|
91
|
-
# @mints_contact.
|
92
|
-
# @mints_contact.logout
|
93
|
-
#
|
207
|
+
# @data = @mints_contact.logout
|
94
208
|
def logout
|
95
|
-
response = @client.raw("post", "/
|
209
|
+
response = @client.raw("post", "/logout", nil, nil, @contact_v1_url) if session_token?
|
96
210
|
if response["success"]
|
97
211
|
@client.session_token = nil
|
98
212
|
end
|
@@ -103,124 +217,575 @@ module Mints
|
|
103
217
|
# === Change Password.
|
104
218
|
# Change password without email. To change the password a contact must be logged.
|
105
219
|
#
|
106
|
-
# ==== Parameters
|
107
|
-
#
|
220
|
+
# ==== Parameters
|
221
|
+
# data:: (Hash) -- A new password allocated in a data key.
|
108
222
|
#
|
109
223
|
# ==== Example
|
110
|
-
#
|
111
|
-
# data =
|
112
|
-
# @mints_contact.change_password(data)
|
113
|
-
#
|
224
|
+
# data = { "password": "new_password" }
|
225
|
+
# @data = @mints_contact.change_password(data)
|
114
226
|
def change_password(data)
|
115
|
-
return @client.raw("post", "/
|
227
|
+
return @client.raw("post", "/change-password", nil, data_transform(data), @contact_v1_url)
|
116
228
|
end
|
117
229
|
|
230
|
+
# Conversations
|
231
|
+
|
118
232
|
##
|
119
|
-
# ===
|
120
|
-
#
|
233
|
+
# === Get Conversations.
|
234
|
+
# Get a collection of conversations.
|
235
|
+
#
|
236
|
+
# ==== Parameters
|
237
|
+
# options:: (Hash) -- List of Resource Collection Options shown above can be used as parameter.
|
238
|
+
# FIXME: This method doesn't return data.
|
239
|
+
def get_conversations(options = nil)
|
240
|
+
return @client.raw("get", "/content/conversations", options, nil, @contact_v1_url)
|
241
|
+
end
|
242
|
+
|
243
|
+
##
|
244
|
+
# === Get Conversation.
|
245
|
+
# Get a conversation info.
|
246
|
+
#
|
247
|
+
# ==== Parameters
|
248
|
+
# id:: (Integer) -- Conversation id.
|
249
|
+
# options:: (Hash) -- List of Resource Collection Options shown above can be used as parameter.
|
250
|
+
# FIXME: This method doesn't return data.
|
251
|
+
def get_conversation(id, options = nil)
|
252
|
+
return @client.raw("get", "/content/conversations/#{id}", options, nil, @contact_v1_url)
|
253
|
+
end
|
254
|
+
|
255
|
+
##
|
256
|
+
# === Create Conversation.
|
257
|
+
# Create a conversation with data.
|
121
258
|
#
|
122
|
-
# ==== Parameters
|
123
|
-
#
|
259
|
+
# ==== Parameters
|
260
|
+
# data:: (Hash) -- Data to be submited.
|
124
261
|
#
|
125
262
|
# ==== Example
|
126
|
-
# data = {
|
127
|
-
#
|
263
|
+
# data = {
|
264
|
+
# "title": "New Conversation To Test"
|
265
|
+
# }
|
266
|
+
# @data = @mints_contact.create_conversation(data)
|
267
|
+
def create_conversation(data)
|
268
|
+
return @client.raw("post", "/content/conversations", nil, data_transform(data), @contact_v1_url)
|
269
|
+
end
|
270
|
+
|
271
|
+
##
|
272
|
+
# === Update Conversation.
|
273
|
+
# Update a location template info.
|
274
|
+
#
|
275
|
+
# ==== Parameters
|
276
|
+
# id:: (Integer) -- Conversation id.
|
277
|
+
# data:: (Hash) -- Data to be submited.
|
278
|
+
# FIXME: This method doesn't locate conversation id to be updated.
|
279
|
+
def update_conversation(id, data)
|
280
|
+
return @client.raw("put", "/content/conversations/#{id}", nil, data_transform(data), @contact_v1_url)
|
281
|
+
end
|
282
|
+
|
283
|
+
##
|
284
|
+
# === Update Conversation Status.
|
285
|
+
# Update a conversation status.
|
286
|
+
#
|
287
|
+
# ==== Parameters
|
288
|
+
# id:: (Integer) -- Conversation id.
|
289
|
+
# data:: (Hash) -- Data to be submited.
|
290
|
+
# FIXME: This method doesn't locate conversation id to be updated.
|
291
|
+
def update_conversation_status(id, data)
|
292
|
+
return @client.raw("put", "/content/conversations/#{id}/status", nil, data_transform(data), @contact_v1_url)
|
293
|
+
end
|
294
|
+
|
295
|
+
##
|
296
|
+
# === Get Conversation Participants.
|
297
|
+
# Update a conversation participants.
|
298
|
+
#
|
299
|
+
# ==== Parameters
|
300
|
+
# id:: (Integer) -- Conversation id.
|
301
|
+
# FIXME: This method doesn't locate conversation id to be updated.
|
302
|
+
def get_conversation_participants(id)
|
303
|
+
#TODO: Test if this method needs data in options.
|
304
|
+
return @client.raw("get", "/content/conversations/#{id}/participants", nil, nil, @contact_v1_url)
|
305
|
+
end
|
306
|
+
|
307
|
+
##
|
308
|
+
# === Get Messages.
|
309
|
+
# Get a collection of messages.
|
310
|
+
#
|
311
|
+
# ==== Parameters
|
312
|
+
# options:: (Hash) -- List of Resource Collection Options shown above can be used as parameter.
|
313
|
+
# FIXME: This method doesn't return data.
|
314
|
+
def get_messages(options = nil)
|
315
|
+
return @client.raw("get", "/content/messages", options, nil, @contact_v1_url)
|
316
|
+
end
|
317
|
+
|
318
|
+
##
|
319
|
+
# === Get Message.
|
320
|
+
# Get a message info.
|
321
|
+
#
|
322
|
+
# ==== Parameters
|
323
|
+
# id:: (Integer) -- Message id.
|
324
|
+
# options:: (Hash) -- List of Resource Collection Options shown above can be used as parameter.
|
325
|
+
# FIXME: This method doesn't return data.
|
326
|
+
def get_message(id, options = nil)
|
327
|
+
return @client.raw("get", "/content/messages/#{id}", options, nil, @contact_v1_url)
|
328
|
+
end
|
329
|
+
|
330
|
+
##
|
331
|
+
# === Create Message.
|
332
|
+
# Create a message with data.
|
128
333
|
#
|
129
|
-
|
130
|
-
|
334
|
+
# ==== Parameters
|
335
|
+
# data:: (Hash) -- Data to be submited.
|
336
|
+
#
|
337
|
+
# ==== Example
|
338
|
+
# data = {
|
339
|
+
# "conversation_id": 3,
|
340
|
+
# "type": "text",
|
341
|
+
# "value": {
|
342
|
+
# "text": "Message Text"
|
343
|
+
# }
|
344
|
+
# }
|
345
|
+
# @data = @mints_contact.create_message(data)
|
346
|
+
def create_message(data)
|
347
|
+
return @client.raw("post", "/content/messages", nil, data_transform(data), @contact_v1_url)
|
131
348
|
end
|
132
349
|
|
350
|
+
# Appointments
|
351
|
+
|
133
352
|
##
|
134
|
-
# ===
|
135
|
-
#
|
353
|
+
# === Get Appointments.
|
354
|
+
# Get a collection of appointments.
|
355
|
+
#
|
356
|
+
# ==== Parameters
|
357
|
+
# options:: (Hash) -- List of Resource Collection Options shown above can be used as parameter.
|
358
|
+
#
|
359
|
+
# ==== First Example
|
360
|
+
# @data = @mints_contact.get_appointments
|
361
|
+
#
|
362
|
+
# ==== Second Example
|
363
|
+
# options = {
|
364
|
+
# "fields": "id, created_at"
|
365
|
+
# }
|
366
|
+
# @data = @mints_contact.get_appointments(options)
|
367
|
+
def get_appointments(options = nil)
|
368
|
+
return @client.raw("get", "/contacts/appointments", options)
|
369
|
+
end
|
370
|
+
|
371
|
+
##
|
372
|
+
# === Get Appointment.
|
373
|
+
# Get an appointment info.
|
374
|
+
#
|
375
|
+
# ==== Parameters
|
376
|
+
# options:: (Hash) -- List of Resource Collection Options shown above can be used as parameter.
|
377
|
+
#
|
378
|
+
# ==== First Example
|
379
|
+
# @data = @mints_contact.get_appointment(1)
|
380
|
+
#
|
381
|
+
# ==== Second Example
|
382
|
+
# options = {
|
383
|
+
# "fields": "id, created_at"
|
384
|
+
# }
|
385
|
+
# @data = @mints_contact.get_appointment(1, options)
|
386
|
+
def get_appointment(id, options = nil)
|
387
|
+
return @client.raw("get", "/contacts/appointments/#{id}", options)
|
388
|
+
end
|
389
|
+
|
390
|
+
##
|
391
|
+
# === Create Appointment.
|
392
|
+
# Create an appointment with data.
|
136
393
|
#
|
137
|
-
# ==== Parameters
|
138
|
-
#
|
394
|
+
# ==== Parameters
|
395
|
+
# data:: (Hash) -- Data to be submited.
|
139
396
|
#
|
140
397
|
# ==== Example
|
141
|
-
# data = {
|
142
|
-
# "
|
143
|
-
# "
|
144
|
-
# "
|
145
|
-
# "
|
146
|
-
#
|
147
|
-
#
|
398
|
+
# data = {
|
399
|
+
# "object_model": "products",
|
400
|
+
# "object_id": 1,
|
401
|
+
# "title": "New Appointment",
|
402
|
+
# "start": "2021-11-25T14:15:00+00:00",
|
403
|
+
# "end": "2022-01-01T13:00:00+00:00"
|
404
|
+
# }
|
405
|
+
# @data = @mints_contact.create_appointment(data)
|
406
|
+
def create_appointment(data)
|
407
|
+
return @client.raw("post", "/contacts/appointments", nil, data_transform(data))
|
408
|
+
end
|
409
|
+
|
410
|
+
##
|
411
|
+
# === Update Appointment.
|
412
|
+
# Update an appointment info.
|
148
413
|
#
|
149
|
-
|
150
|
-
|
414
|
+
# ==== Parameters
|
415
|
+
# id:: (Integer) -- Appointment id.
|
416
|
+
# data:: (Hash) -- Data to be submited.
|
417
|
+
#
|
418
|
+
# ==== Example
|
419
|
+
# data = {
|
420
|
+
# "object_id": 2
|
421
|
+
# }
|
422
|
+
# @data = @mints_contact.update_appointment(1, data)
|
423
|
+
def update_appointment(id, data)
|
424
|
+
return @client.raw("put", "/contacts/appointments/#{id}", nil, data_transform(data))
|
151
425
|
end
|
152
426
|
|
153
427
|
##
|
154
|
-
# ===
|
155
|
-
#
|
428
|
+
# === Scheduled Appointments.
|
429
|
+
# Get a collection of appointments filtering by object_type, object_id and dates range.
|
156
430
|
#
|
157
|
-
|
158
|
-
|
431
|
+
# ==== Parameters
|
432
|
+
# data:: (Hash) -- Data to be submited.
|
433
|
+
#
|
434
|
+
# ==== Example
|
435
|
+
# data = {
|
436
|
+
# "object_model": "products",
|
437
|
+
# "object_id": 2,
|
438
|
+
# "start": "2021-11-25T14:15:00+00:00",
|
439
|
+
# "end": "2022-01-01T13:00:00+00:00"
|
440
|
+
# }
|
441
|
+
# @data = @mints_contact.scheduled_appointments(data)
|
442
|
+
def scheduled_appointments(data)
|
443
|
+
return @client.raw("post", "/contacts/appointments/scheduled-appointments", nil, data_transform(data))
|
444
|
+
end
|
445
|
+
|
446
|
+
##
|
447
|
+
# === Attach Invitee.
|
448
|
+
# Attach invitee to an appointment.
|
449
|
+
#
|
450
|
+
# ==== Parameters
|
451
|
+
# data:: (Hash) -- Data to be submited.
|
452
|
+
#
|
453
|
+
# ==== Example
|
454
|
+
# data = {
|
455
|
+
# "appointment_id": 1,
|
456
|
+
# "invitee_ids": 1
|
457
|
+
# }
|
458
|
+
# @data = @mints_contact.attach_invitee(data)
|
459
|
+
def attach_invitee(data)
|
460
|
+
return @client.raw("post", "/contacts/appointments/attach-invitee", nil, data_transform(data))
|
159
461
|
end
|
160
462
|
|
161
463
|
##
|
162
|
-
# ===
|
163
|
-
#
|
464
|
+
# === Attach Follower.
|
465
|
+
# Attach follower to an appointment.
|
466
|
+
#
|
467
|
+
# ==== Parameters
|
468
|
+
# data:: (Hash) -- Data to be submited.
|
164
469
|
#
|
165
470
|
# ==== Example
|
166
|
-
#
|
471
|
+
# data = {
|
472
|
+
# "appointment_id": 1,
|
473
|
+
# "follower_ids": 1
|
474
|
+
# }
|
475
|
+
# @data = @mints_contact.attach_follower(data)
|
476
|
+
def attach_follower(data)
|
477
|
+
return @client.raw("post", "/contacts/appointments/attach-follower", nil, data_transform(data))
|
478
|
+
end
|
479
|
+
|
480
|
+
##
|
481
|
+
# === Detach Invitee.
|
482
|
+
# Detach invitee from an appointment.
|
483
|
+
#
|
484
|
+
# ==== Parameters
|
485
|
+
# data:: (Hash) -- Data to be submited.
|
167
486
|
#
|
168
|
-
|
169
|
-
|
487
|
+
# ==== Example
|
488
|
+
# data = {
|
489
|
+
# "appointment_id": 1,
|
490
|
+
# "invitee_ids": 1
|
491
|
+
# }
|
492
|
+
# @data = @mints_contact.detach_invitee(data)
|
493
|
+
def detach_invitee(data)
|
494
|
+
return @client.raw("post", "/contacts/appointments/detach-invitee", nil, data_transform(data))
|
170
495
|
end
|
171
496
|
|
172
497
|
##
|
173
|
-
# ===
|
174
|
-
#
|
498
|
+
# === Detach Follower.
|
499
|
+
# Detach follower from an appointment.
|
500
|
+
#
|
501
|
+
# ==== Parameters
|
502
|
+
# data:: (Hash) -- Data to be submited.
|
175
503
|
#
|
176
504
|
# ==== Example
|
177
|
-
#
|
505
|
+
# data = {
|
506
|
+
# "appointment_id": 1,
|
507
|
+
# "follower_ids": 1
|
508
|
+
# }
|
509
|
+
# @data = @mints_contact.detach_follower(data)
|
510
|
+
def detach_follower(data)
|
511
|
+
return @client.raw("post", "/contacts/appointments/detach-follower", nil, data_transform(data))
|
512
|
+
end
|
513
|
+
|
514
|
+
##
|
515
|
+
# === Sync Invitee.
|
516
|
+
# Sync an invitee from an appointment.
|
178
517
|
#
|
179
|
-
|
180
|
-
|
518
|
+
# ==== Parameters
|
519
|
+
# data:: (Hash) -- Data to be submited.
|
520
|
+
#
|
521
|
+
# ==== Example
|
522
|
+
# data = {
|
523
|
+
# "appointment_id": 1,
|
524
|
+
# "invitee_ids": 1
|
525
|
+
# }
|
526
|
+
# @data = @mints_contact.sync_invitee(data)
|
527
|
+
def sync_invitee(data)
|
528
|
+
return @client.raw("post", "/contacts/appointments/sync-invitee", nil, data_transform(data))
|
181
529
|
end
|
182
530
|
|
183
531
|
##
|
184
|
-
# ===
|
185
|
-
#
|
532
|
+
# === Sync Follower.
|
533
|
+
# Sync a follower from an appointment.
|
186
534
|
#
|
187
|
-
# ==== Parameters
|
188
|
-
#
|
535
|
+
# ==== Parameters
|
536
|
+
# data:: (Hash) -- Data to be submited.
|
189
537
|
#
|
190
538
|
# ==== Example
|
191
|
-
#
|
192
|
-
#
|
193
|
-
# "
|
194
|
-
#
|
195
|
-
#
|
196
|
-
|
539
|
+
# data = {
|
540
|
+
# "appointment_id": 1,
|
541
|
+
# "follower_ids": 1
|
542
|
+
# }
|
543
|
+
# @data = @mints_contact.sync_follower(data)
|
544
|
+
def sync_follower(data)
|
545
|
+
return @client.raw("post", "/contacts/appointments/sync-follower", nil, data_transform(data))
|
546
|
+
end
|
547
|
+
|
548
|
+
##
|
549
|
+
# === Get Orders.
|
550
|
+
# Get a collection of orders.
|
197
551
|
#
|
198
|
-
|
199
|
-
|
552
|
+
# ==== Parameters
|
553
|
+
# options:: (Hash) -- List of Resource Collection Options shown above can be used as parameter.
|
554
|
+
# use_post:: (Boolean) -- Variable to determine if the request is by 'post' or 'get' functions.
|
555
|
+
#
|
556
|
+
# ==== First Example
|
557
|
+
# @data = @mints_pub.get_orders
|
558
|
+
#
|
559
|
+
# ==== Second Example
|
560
|
+
# options = { "fields": "title" }
|
561
|
+
# @data = @mints_pub.get_orders(options)
|
562
|
+
#
|
563
|
+
# ==== Third Example
|
564
|
+
# options = { "fields": "title" }
|
565
|
+
# @data = @mints_pub.get_orders(options, false)
|
566
|
+
def get_orders(options = nil, use_post = true)
|
567
|
+
if use_post
|
568
|
+
return @client.raw("post", "/ecommerce/orders/query", options, nil, @contact_v1_url)
|
569
|
+
else
|
570
|
+
return @client.raw("get", "/ecommerce/orders", options, nil, @contact_v1_url)
|
571
|
+
end
|
200
572
|
end
|
201
573
|
|
202
574
|
##
|
203
|
-
# ===
|
204
|
-
#
|
575
|
+
# === Get Order.
|
576
|
+
# Get an order info.
|
205
577
|
#
|
206
|
-
# ==== Parameters
|
207
|
-
#
|
578
|
+
# ==== Parameters
|
579
|
+
# id:: (Integer) -- Order id.
|
580
|
+
# options:: (Hash) -- List of Resource Collection Options shown above can be used as parameter.
|
581
|
+
#
|
582
|
+
# ==== First Example
|
583
|
+
# @data = @mints_pub.get_product(25)
|
584
|
+
#
|
585
|
+
# ==== Second Example
|
586
|
+
# options = {
|
587
|
+
# "fields": "title"
|
588
|
+
# }
|
589
|
+
# @data = @mints_pub.get_product(25, options)
|
590
|
+
def get_order(id, options = nil)
|
591
|
+
return @client.raw("get", "/ecommerce/orders/#{id}", options, nil, @contact_v1_url)
|
592
|
+
end
|
593
|
+
|
594
|
+
##
|
595
|
+
# === Create Order.
|
596
|
+
# Create a order with data.
|
597
|
+
#
|
598
|
+
# ==== Parameters
|
599
|
+
# data:: (Hash) -- Data to be submited.
|
208
600
|
#
|
209
601
|
# ==== Example
|
210
|
-
# data = {
|
211
|
-
# "
|
212
|
-
# "
|
213
|
-
# "
|
214
|
-
#
|
215
|
-
#
|
216
|
-
|
602
|
+
# data = {
|
603
|
+
# "order_template_id": 1,
|
604
|
+
# "order_status_id": 1,
|
605
|
+
# "sales_channel_id": 1
|
606
|
+
# }
|
607
|
+
# @data = @mints_pub.create_order(data)
|
608
|
+
def create_order(data)
|
609
|
+
return @client.raw("post", "/ecommerce/orders", nil, data_transform(data), @contact_v1_url)
|
610
|
+
end
|
611
|
+
|
612
|
+
##
|
613
|
+
# === Update Order.
|
614
|
+
# Update an order info.
|
615
|
+
#
|
616
|
+
# ==== Parameters
|
617
|
+
# id:: (Integer) -- Order Id
|
618
|
+
# data:: (Hash) -- Data to be submited.
|
619
|
+
# FIXME: This method doesnt update an order.
|
620
|
+
def update_order(id, data)
|
621
|
+
return @client.raw("put", "/ecommerce/orders/#{id}", nil, data_transform(data), @contact_v1_url)
|
622
|
+
end
|
623
|
+
|
624
|
+
#TODO: No tested
|
625
|
+
# === Detach Order Item From Order Item Group.
|
626
|
+
# Detach an order item from an order item group.
|
217
627
|
#
|
218
|
-
|
219
|
-
|
628
|
+
# ==== Parameters
|
629
|
+
# orderItemId:: (Integer) -- Order item id.
|
630
|
+
# groupId:: (Integer) -- Order items group id.
|
631
|
+
#
|
632
|
+
def detach_order_item_from_order_item_group(orderItemId, groupId)
|
633
|
+
return @client.raw("put", "/ecommerce/order-items/detach/#{orderItemId}/order-items-groups/#{groupId}", nil, nil, @contact_v1_url)
|
634
|
+
end
|
635
|
+
|
636
|
+
#TODO: No tested
|
637
|
+
# === Update Order Item From Order Item Group.
|
638
|
+
# Update an order item data from an order item group.
|
639
|
+
#
|
640
|
+
# ==== Parameters
|
641
|
+
# orderItemId:: (Integer) -- Order item id.
|
642
|
+
# groupId:: (Integer) -- Order items group id.
|
643
|
+
#
|
644
|
+
def update_order_item_from_order_item_group(orderItemId, groupId, data)
|
645
|
+
return @client.raw("put", "/ecommerce/order-items/update/#{orderItemId}/order-items-groups/#{groupId}", nil, data_transform(data), @contact_v1_url)
|
646
|
+
end
|
647
|
+
|
648
|
+
##
|
649
|
+
# === Get My Shopping Cart.
|
650
|
+
# Get a collection of items in the shopping cart.
|
651
|
+
#
|
652
|
+
# ==== Example
|
653
|
+
# @data = @mints_contact.get_my_shopping_cart
|
654
|
+
# FIXME: This method returns a nil data.
|
655
|
+
def get_my_shopping_cart
|
656
|
+
return @client.raw("get", "/ecommerce/my-shopping-cart", nil, nil, @contact_v1_url)
|
657
|
+
end
|
658
|
+
|
659
|
+
##
|
660
|
+
# === Add Item To Shopping Cart.
|
661
|
+
# Add an item into a shopping cart.
|
662
|
+
#
|
663
|
+
# ==== Parameters
|
664
|
+
# data:: (Hash) -- Data to be submited.
|
665
|
+
#
|
666
|
+
# ==== Example
|
667
|
+
# data = {
|
668
|
+
# "quantity": 1,
|
669
|
+
# "sku_id": 1,
|
670
|
+
# "price_list_id": 1
|
671
|
+
# }
|
672
|
+
# @data = @mints_contact.add_item_to_shopping_cart(data)
|
673
|
+
def add_item_to_shopping_cart(data)
|
674
|
+
return @client.raw("post", "/ecommerce/shopping-cart", nil, data_transform(data), @contact_v1_url)
|
675
|
+
end
|
676
|
+
|
677
|
+
##
|
678
|
+
# === Get Order Items.
|
679
|
+
# Get a collection of order items.
|
680
|
+
#TODO: Find a way to show order items.
|
681
|
+
def get_order_items(options = nil)
|
682
|
+
return @client.raw("get", "/ecommerce/order-items", options, nil, @contact_v1_url)
|
683
|
+
end
|
684
|
+
|
685
|
+
##
|
686
|
+
# === Get Order Item.
|
687
|
+
# Get an order item info.
|
688
|
+
#TODO: Find a way to show order items.
|
689
|
+
def get_order_item(id, options = nil)
|
690
|
+
return @client.raw("get", "/ecommerce/order-items/#{id}", options, nil, @contact_v1_url)
|
691
|
+
end
|
692
|
+
|
693
|
+
##
|
694
|
+
# === Get Order Item Groups.
|
695
|
+
# Get a collection of order item groups.
|
696
|
+
#
|
697
|
+
# ==== Parameters
|
698
|
+
# options:: (Hash) -- List of Resource Collection Options shown above can be used as parameter.
|
699
|
+
#
|
700
|
+
# ==== First Example
|
701
|
+
# @data = @mints_contact.get_order_item_groups
|
702
|
+
#
|
703
|
+
# ==== Second Example
|
704
|
+
# options = {
|
705
|
+
# "fields": "id"
|
706
|
+
# }
|
707
|
+
# @data = @mints_contact.get_order_item_groups(options)
|
708
|
+
def get_order_item_groups(options = nil)
|
709
|
+
return @client.raw("get", "/ecommerce/order-items-groups", options, nil, @contact_v1_url)
|
710
|
+
end
|
711
|
+
|
712
|
+
##
|
713
|
+
# === Get Order Item Group.
|
714
|
+
# Get an order item group info.
|
715
|
+
#
|
716
|
+
# ==== Parameters
|
717
|
+
# id:: (Integer) -- Order Item Group Id.
|
718
|
+
# options:: (Hash) -- List of Resource Collection Options shown above can be used as parameter.
|
719
|
+
#
|
720
|
+
# ==== First Example
|
721
|
+
# @data = @mints_contact.get_order_item_group(130)
|
722
|
+
#
|
723
|
+
# ==== Second Example
|
724
|
+
# options = {
|
725
|
+
# "fields": "id"
|
726
|
+
# }
|
727
|
+
# @data = @mints_contact.get_order_item_group(130, options)
|
728
|
+
def get_order_item_group(id, options = nil)
|
729
|
+
return @client.raw("get", "/ecommerce/order-items-groups/#{id}", options, nil, @contact_v1_url)
|
730
|
+
end
|
731
|
+
|
732
|
+
##
|
733
|
+
# === Create Order Item Group.
|
734
|
+
# Create an order item group with data if you are related to that order.
|
735
|
+
#
|
736
|
+
# ==== Parameters
|
737
|
+
# data:: (Hash) -- Data to be submited.
|
738
|
+
#
|
739
|
+
# ==== First Example
|
740
|
+
# data = {
|
741
|
+
# "name": "New Order Item Group",
|
742
|
+
# "quantity": 1,
|
743
|
+
# "order_id": 1,
|
744
|
+
# "on_sale_price": 100
|
745
|
+
# }
|
746
|
+
# @data = @mints_contact.create_order_item_group(data)
|
747
|
+
#
|
748
|
+
# ==== Second Example
|
749
|
+
# data = {
|
750
|
+
# "name": "",
|
751
|
+
# "quantity": 1,
|
752
|
+
# "order_id": 1,
|
753
|
+
# "sku_id": 1
|
754
|
+
# }
|
755
|
+
# @data = @mints_contact.create_order_item_group(data)
|
756
|
+
def create_order_item_group(data)
|
757
|
+
return @client.raw("post", "/ecommerce/order-items-groups", nil, data_transform(data), @contact_v1_url)
|
758
|
+
end
|
759
|
+
|
760
|
+
##
|
761
|
+
# === Update Order Item Group.
|
762
|
+
# Update an order item group info if you are related to that order.
|
763
|
+
#
|
764
|
+
# ==== Parameters
|
765
|
+
# id:: (Integer) -- Order Item Group Id.
|
766
|
+
# data:: (Hash) -- Data to be submited.
|
767
|
+
#
|
768
|
+
# ==== First Example
|
769
|
+
# data = {
|
770
|
+
# "name": "New Order Item Group Name Updated"
|
771
|
+
# }
|
772
|
+
# @data = @mints_contact.update_order_item_group(130, data)
|
773
|
+
def update_order_item_group(id, data)
|
774
|
+
return @client.raw("put", "/ecommerce/order-items-groups/#{id}", nil, data_transform(data), @contact_v1_url)
|
775
|
+
end
|
776
|
+
|
777
|
+
##
|
778
|
+
# === Delete Order Item Group.
|
779
|
+
# Delete an order item group.
|
780
|
+
# FIXME: This method doesn't work. Throw no action error.
|
781
|
+
def delete_order_item_group(id)
|
782
|
+
return @client.raw("delete", "/ecommerce/order-items-groups/#{id}", nil, nil, @contact_v1_url)
|
220
783
|
end
|
221
784
|
|
222
785
|
private
|
223
786
|
|
787
|
+
include MintsHelper
|
788
|
+
|
224
789
|
def session_token?
|
225
790
|
if @client.session_token
|
226
791
|
return true
|