mints 0.0.12 → 0.0.16
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/lib/client.rb +12 -7
- data/lib/contact.rb +28 -2
- data/lib/generators/mints_assets_controller.rb +3 -0
- data/lib/generators/mints_files_generator.rb +5 -2
- data/lib/mints/controllers/admin_base_controller.rb +27 -11
- data/lib/mints/controllers/base_api_controller.rb +94 -4
- data/lib/mints/controllers/base_controller.rb +18 -1
- data/lib/mints/controllers/contact_api_controller.rb +5 -0
- data/lib/mints/controllers/user_api_controller.rb +1 -1
- data/lib/pub.rb +110 -104
- data/lib/user.rb +26 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9cce05094ead82499622fb1f66d7caa52848d7940c484917218563d32defa16
|
4
|
+
data.tar.gz: 88e34ca4adfe1f77097206463f6c24a6479b63f2cfdf92bf3106152c00b8dd5a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fbd81e5fed7023a5b3d489c66bbcc1efa3304d2fe6a7492aef0f0c72f51ad98c2c77635377858e19df92d61fd5a1c26d7d7758d0fde57c223ee9c9968faf0337
|
7
|
+
data.tar.gz: 6f8672d582a57aa9f2128b73b6fb8133387ea604082557b146eadc321cd9fbcd55a9da4bbba4ac9541cfc3225edcc6826858f314b104abea0bf887bd87bc5a0c
|
data/lib/client.rb
CHANGED
@@ -8,12 +8,14 @@ module Mints
|
|
8
8
|
attr_reader :api_key
|
9
9
|
attr_reader :scope
|
10
10
|
attr_reader :base_url
|
11
|
-
attr_accessor :session_token
|
11
|
+
attr_accessor :session_token
|
12
|
+
attr_accessor :contact_token_id
|
12
13
|
|
13
|
-
def initialize(host, api_key, scope = nil, session_token = nil, debug = false)
|
14
|
+
def initialize(host, api_key, scope = nil, session_token = nil, contact_token_id = nil, debug = false)
|
14
15
|
@host = host
|
15
16
|
@api_key = api_key
|
16
17
|
@session_token = session_token
|
18
|
+
@contact_token_id = contact_token_id
|
17
19
|
@debug = debug
|
18
20
|
self.set_scope(scope)
|
19
21
|
end
|
@@ -22,6 +24,9 @@ module Mints
|
|
22
24
|
base_url = @base_url if !base_url
|
23
25
|
uri = ""
|
24
26
|
if (options && options.class == Hash)
|
27
|
+
if (options[:jfilters] && options[:jfilters].class == Hash)
|
28
|
+
options[:jfilters] = Base64.encode64(JSON.generate(options[:jfilters]))
|
29
|
+
end
|
25
30
|
uri = Addressable::URI.new
|
26
31
|
uri.query_values = options
|
27
32
|
end
|
@@ -218,7 +223,7 @@ module Mints
|
|
218
223
|
headers = {
|
219
224
|
"ApiKey" => @api_key,
|
220
225
|
"Accept" => "application/json",
|
221
|
-
"ContactToken" => @
|
226
|
+
"ContactToken" => @contact_token_id
|
222
227
|
}
|
223
228
|
headers["Authorization"] = "Bearer #{@session_token}" if @session_token
|
224
229
|
return self.http_get(url, headers)
|
@@ -228,7 +233,7 @@ module Mints
|
|
228
233
|
headers = {
|
229
234
|
"ApiKey" => @api_key,
|
230
235
|
"Accept" => "application/json",
|
231
|
-
"ContactToken" => @
|
236
|
+
"ContactToken" => @contact_token_id
|
232
237
|
}
|
233
238
|
headers["Authorization"] = "Bearer #{@session_token}" if @session_token
|
234
239
|
return self.http_post(url, headers, data)
|
@@ -238,7 +243,7 @@ module Mints
|
|
238
243
|
headers = {
|
239
244
|
"ApiKey" => @api_key,
|
240
245
|
"Accept" => "application/json",
|
241
|
-
"ContactToken" => @
|
246
|
+
"ContactToken" => @contact_token_id
|
242
247
|
}
|
243
248
|
headers["Authorization"] = "Bearer #{@session_token}" if @session_token
|
244
249
|
return self.http_post(url, headers, data)
|
@@ -280,7 +285,7 @@ module Mints
|
|
280
285
|
"Content-Type" => "application/json",
|
281
286
|
"ApiKey" => @api_key
|
282
287
|
}
|
283
|
-
h["ContactToken"] = @
|
288
|
+
h["ContactToken"] = @contact_token_id if @contact_token_id
|
284
289
|
if headers
|
285
290
|
headers.each do |k,v|
|
286
291
|
h[k] = v
|
@@ -310,7 +315,7 @@ module Mints
|
|
310
315
|
"Content-Type" => "application/json",
|
311
316
|
"ApiKey" => @api_key
|
312
317
|
}
|
313
|
-
h["ContactToken"] = @
|
318
|
+
h["ContactToken"] = @contact_token_id if @contact_token_id
|
314
319
|
if headers
|
315
320
|
headers.each do |k,v|
|
316
321
|
h[k] = v
|
data/lib/contact.rb
CHANGED
@@ -7,8 +7,8 @@ module Mints
|
|
7
7
|
# === Initialize.
|
8
8
|
# Class constructor
|
9
9
|
#
|
10
|
-
def initialize(host, api_key, session_token = nil, debug = false)
|
11
|
-
@client = Mints::Client.new(host, api_key, "contact", session_token, debug)
|
10
|
+
def initialize(host, api_key, session_token = nil, contact_token_id = nil, debug = false)
|
11
|
+
@client = Mints::Client.new(host, api_key, "contact", session_token, contact_token_id, debug)
|
12
12
|
end
|
13
13
|
|
14
14
|
##
|
@@ -27,6 +27,32 @@ module Mints
|
|
27
27
|
return response
|
28
28
|
end
|
29
29
|
|
30
|
+
##
|
31
|
+
# === Magic Link Login.
|
32
|
+
# Starts a contact session
|
33
|
+
#
|
34
|
+
def magic_link_login(token)
|
35
|
+
response = @client.raw("get", "/contacts/magic-link-login/#{token}", nil, '/api/v1')
|
36
|
+
if response.key? "session_token"
|
37
|
+
@client.session_token = response["session_token"]
|
38
|
+
end
|
39
|
+
return response
|
40
|
+
end
|
41
|
+
|
42
|
+
##
|
43
|
+
# === Send magic link to contact
|
44
|
+
def send_magic_link(email, template_slug, redirectUrl = '', lifeTime = 1440, maxVisits = nil)
|
45
|
+
data = {
|
46
|
+
email: email,
|
47
|
+
lifeTime: lifeTime,
|
48
|
+
maxVisits: maxVisits,
|
49
|
+
redirectUrl: redirectUrl,
|
50
|
+
templateId: template_slug
|
51
|
+
}
|
52
|
+
response = @client.raw("post", "/contacts/magic-link", nil, { data: data }, '/api/v1')
|
53
|
+
return response
|
54
|
+
end
|
55
|
+
|
30
56
|
##
|
31
57
|
# === Logout.
|
32
58
|
# Ends a contact session
|
@@ -6,12 +6,15 @@ class MintsFilesGenerator < Rails::Generators::Base
|
|
6
6
|
copy_file 'mints_user_controller.rb', './app/controllers/api/mints_user_controller.rb'
|
7
7
|
copy_file 'mints_contact_controller.rb', './app/controllers/api/v1/mints_contact_controller.rb'
|
8
8
|
copy_file 'mints_public_controller.rb', './app/controllers/api/v1/mints_public_controller.rb'
|
9
|
+
copy_file 'mints_assets_controller.rb', './app/controllers/mints_assets_controller.rb'
|
9
10
|
route <<-eos
|
10
11
|
# Mints auto-generated routes (proxy to send request to mints.cloud)
|
12
|
+
match '/public-assets/*path' => 'mints_assets#index', via: [:get, :post, :put, :patch, :delete]
|
11
13
|
namespace :api, defaults: { format: :json } do
|
12
|
-
match '/user/v1/*path' => 'mints_user#index', via: [:get, :post, :put, :patch, :delete]
|
14
|
+
match '/user/v1/*path' => 'mints_user#index', via: [:get, :post, :put, :patch, :delete]
|
15
|
+
match '/contact/v1/*path' => 'mints_contact#index', via: [:get, :post, :put, :patch, :delete]
|
13
16
|
namespace :v1 do
|
14
|
-
match '/contacts/*path' => 'mints_contact#index', via: [:get, :post, :put, :patch, :delete]
|
17
|
+
match '/contacts/*path' => 'mints_contact#index', via: [:get, :post, :put, :patch, :delete]
|
15
18
|
match '/*path' => 'mints_public#index', via: [:get, :post, :put, :patch, :delete]
|
16
19
|
end
|
17
20
|
end
|
@@ -2,16 +2,16 @@ module Mints
|
|
2
2
|
class AdminBaseController < ActionController::Base
|
3
3
|
before_action :set_mints_user_client
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
5
|
+
def mints_user_signed_in?
|
6
|
+
# Check status in mints
|
7
|
+
response = @mints_user.me
|
8
|
+
status = response['data'] ? true : false
|
9
|
+
unless status
|
10
|
+
# if mints response is negative delete the session cookie
|
11
|
+
#cookies.delete(:mints_user_session_token)
|
12
|
+
end
|
13
|
+
return status
|
14
|
+
end
|
15
15
|
|
16
16
|
##
|
17
17
|
# === Mints user Login.
|
@@ -25,6 +25,21 @@ module Mints
|
|
25
25
|
cookies.permanent[:mints_user_session_token] = session_token
|
26
26
|
end
|
27
27
|
|
28
|
+
##
|
29
|
+
# === Mints user Login.
|
30
|
+
# Starts a user session in mints.cloud and set a session cookie
|
31
|
+
def mints_user_magic_link_login(hash)
|
32
|
+
# Login in mints
|
33
|
+
response = @mints_user.magic_link_login(hash)
|
34
|
+
if response['data'] && response['data']['redirect_url']
|
35
|
+
# Set a cookie with the session token
|
36
|
+
cookies[:mints_user_session_token] = { value: response['data']['api_token'], expires: 1.day }
|
37
|
+
redirect_to response['data']['redirect_url']
|
38
|
+
else
|
39
|
+
redirect_to '/'
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
28
43
|
##
|
29
44
|
# === Mints user Logout.
|
30
45
|
# Destroy session from mints.cloud and delete local session cookie
|
@@ -51,7 +66,8 @@ module Mints
|
|
51
66
|
raise 'MintsBadCredentialsError'
|
52
67
|
end
|
53
68
|
# Initialize mints user client
|
54
|
-
|
69
|
+
session_token = cookies[:mints_user_session_token] ? cookies[:mints_user_session_token] : nil
|
70
|
+
@mints_user = Mints::User.new(@host, @api_key, session_token, @debug)
|
55
71
|
end
|
56
72
|
end
|
57
73
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Mints
|
2
2
|
class BaseApiController < ActionController::Base
|
3
|
-
before_action :
|
3
|
+
before_action :set_mints_clients
|
4
4
|
|
5
5
|
##
|
6
6
|
# === Mints Contact Login.
|
@@ -15,6 +15,26 @@ module Mints
|
|
15
15
|
cookies.permanent[:mints_contact_session_token] = session_token
|
16
16
|
cookies.permanent[:mints_contact_id] = id_token
|
17
17
|
@contact_token = id_token
|
18
|
+
end
|
19
|
+
|
20
|
+
##
|
21
|
+
# === Mints cotnact Login.
|
22
|
+
# Starts a cotnact session in mints.cloud and set a session cookie
|
23
|
+
def mints_contact_magic_link_login(hash)
|
24
|
+
# Login in mints
|
25
|
+
response = @mints_contact.magic_link_login(hash)
|
26
|
+
if response['data']
|
27
|
+
# Get session token from response
|
28
|
+
session_token = response['data']['session_token']
|
29
|
+
id_token = response['data']['contact']['id_token']
|
30
|
+
# Set a permanent cookie with the session token
|
31
|
+
cookies.permanent[:mints_contact_session_token] = session_token
|
32
|
+
cookies.permanent[:mints_contact_id] = id_token
|
33
|
+
@contact_token = id_token
|
34
|
+
redirect_to response['data']['redirect_url'] ? response['data']['redirect_url'] : '/'
|
35
|
+
else
|
36
|
+
redirect_to '/'
|
37
|
+
end
|
18
38
|
end
|
19
39
|
|
20
40
|
##
|
@@ -28,26 +48,96 @@ module Mints
|
|
28
48
|
cookies.delete(:mints_contact_id)
|
29
49
|
@contact_token = nil
|
30
50
|
end
|
51
|
+
|
52
|
+
##
|
53
|
+
# === Mints user Login.
|
54
|
+
# Starts a user session in mints.cloud and set a session cookie
|
55
|
+
def mints_user_login(email, password)
|
56
|
+
# Login in mints
|
57
|
+
response = @mints_user.login(email, password)
|
58
|
+
# Get session token from response
|
59
|
+
session_token = response['api_token']
|
60
|
+
# Set a permanent cookie with the session token
|
61
|
+
cookies.permanent[:mints_user_session_token] = session_token
|
62
|
+
end
|
63
|
+
|
64
|
+
##
|
65
|
+
# === Mints user Login.
|
66
|
+
# Starts a user session in mints.cloud and set a session cookie
|
67
|
+
def mints_user_magic_link_login(hash)
|
68
|
+
# Login in mints
|
69
|
+
response = @mints_user.magic_link_login(hash)
|
70
|
+
if response['data']
|
71
|
+
# Set a cookie with the session token
|
72
|
+
cookies[:mints_user_session_token] = { value: response['data']['api_token'], expires: 1.day }
|
73
|
+
redirect_to response['data']['redirect_url'] ? response['data']['redirect_url'] : '/'
|
74
|
+
else
|
75
|
+
redirect_to '/'
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
##
|
80
|
+
# === Mints user Logout.
|
81
|
+
# Destroy session from mints.cloud and delete local session cookie
|
82
|
+
def mints_user_logout
|
83
|
+
# Logout from mints
|
84
|
+
# @mints_user.logout
|
85
|
+
# Delete local cookie
|
86
|
+
cookies.delete(:mints_user_session_token)
|
87
|
+
end
|
31
88
|
|
32
89
|
private
|
33
90
|
|
34
91
|
##
|
35
|
-
# === Set mints pub
|
36
|
-
# Initialize
|
37
|
-
def
|
92
|
+
# === Set mints clients (pub, user and contact)
|
93
|
+
# Initialize all clients from mitns
|
94
|
+
def set_mints_clients
|
38
95
|
if File.exists?("#{Rails.root}/mints_config.yml.erb")
|
39
96
|
template = ERB.new File.new("#{Rails.root}/mints_config.yml.erb").read
|
40
97
|
config = YAML.load template.result(binding)
|
41
98
|
@host = config["mints"]["host"]
|
42
99
|
@api_key = config["mints"]["api_key"]
|
43
100
|
@debug = config["sdk"]["debug"] ? config["sdk"]["debug"] : false
|
101
|
+
|
102
|
+
#public client
|
103
|
+
set_mints_pub_client
|
104
|
+
#contact client
|
105
|
+
set_mints_contact_client
|
106
|
+
#user client
|
107
|
+
set_mints_user_client
|
44
108
|
else
|
45
109
|
raise 'MintsBadCredentialsError'
|
46
110
|
end
|
111
|
+
end
|
112
|
+
|
113
|
+
##
|
114
|
+
# === Set mints pub.
|
115
|
+
# Initialize the public client and set the contact token
|
116
|
+
def set_mints_pub_client
|
117
|
+
|
47
118
|
# Initialize mints pub client, credentials taken from mints_config.yml.erb file
|
48
119
|
@mints_pub = Mints::Pub.new(@host, @api_key, nil, @debug)
|
49
120
|
# Set contact token from cookie
|
50
121
|
@mints_pub.client.session_token = @contact_token
|
51
122
|
end
|
123
|
+
|
124
|
+
##
|
125
|
+
# === Set mints contact client.
|
126
|
+
# Initialize the public client and set the contact token
|
127
|
+
def set_mints_contact_client
|
128
|
+
# Initialize mints clontact client
|
129
|
+
session_token = cookies[:mints_contact_session_token] ? cookies[:mints_contact_session_token] : nil
|
130
|
+
contact_token_id = cookies[:mints_contact_id] ? cookies[:mints_contact_id] : nil
|
131
|
+
@mints_contact = Mints::Contact.new(@host, @api_key, session_token, contact_token_id, @debug)
|
132
|
+
end
|
133
|
+
|
134
|
+
##
|
135
|
+
# === Set Mints user client.
|
136
|
+
# Initialize the public client and set the user token
|
137
|
+
def set_mints_user_client
|
138
|
+
# Initialize mints user client
|
139
|
+
session_token = cookies[:mints_user_session_token] ? cookies[:mints_user_session_token] : nil
|
140
|
+
@mints_user = Mints::User.new(@host, @api_key, session_token, @debug)
|
141
|
+
end
|
52
142
|
end
|
53
143
|
end
|
@@ -31,6 +31,21 @@ module Mints
|
|
31
31
|
@contact_token = id_token
|
32
32
|
end
|
33
33
|
|
34
|
+
##
|
35
|
+
# === Mints Contact Magic Link Login.
|
36
|
+
# Starts a contact session in mints.cloud and set a session cookie
|
37
|
+
def mints_contact_magic_link_login(token)
|
38
|
+
# Login in mints
|
39
|
+
response = @mints_contact.login(email, password)
|
40
|
+
# Get session token from response
|
41
|
+
session_token = response['session_token']
|
42
|
+
id_token = response['contact']['id_token']
|
43
|
+
# Set a permanent cookie with the session token
|
44
|
+
cookies.permanent[:mints_contact_session_token] = session_token
|
45
|
+
cookies.permanent[:mints_contact_id] = id_token
|
46
|
+
@contact_token = id_token
|
47
|
+
end
|
48
|
+
|
34
49
|
##
|
35
50
|
# === Mints Contact Logout.
|
36
51
|
# Destroy session from mints.cloud and delete local session cookie
|
@@ -86,7 +101,9 @@ module Mints
|
|
86
101
|
# Initialize the public client and set the contact token
|
87
102
|
def set_mints_contact_client
|
88
103
|
# Initialize mints clontact client
|
89
|
-
|
104
|
+
session_token = cookies[:mints_contact_session_token] ? cookies[:mints_contact_session_token] : nil
|
105
|
+
contact_token_id = cookies[:mints_contact_id] ? cookies[:mints_contact_id] : nil
|
106
|
+
@mints_contact = Mints::Contact.new(@host, @api_key, session_token, contact_token_id, @debug)
|
90
107
|
end
|
91
108
|
end
|
92
109
|
end
|
@@ -14,6 +14,11 @@ module Mints
|
|
14
14
|
'Content-Type'=> 'application/json',
|
15
15
|
'Accept'=> 'application/json'
|
16
16
|
}
|
17
|
+
# Set contact token id as header
|
18
|
+
if cookies[:mints_contact_id]
|
19
|
+
headers['ContactToken'] = cookies[:mints_contact_id]
|
20
|
+
end
|
21
|
+
# Set contact session token as header
|
17
22
|
if cookies[:mints_contact_session_token]
|
18
23
|
session_token = cookies[:mints_contact_session_token]
|
19
24
|
headers["Authorization"] = "Bearer #{session_token}"
|
@@ -14,7 +14,7 @@ module Mints
|
|
14
14
|
'Content-Type'=> 'application/json',
|
15
15
|
'Accept'=> 'application/json'
|
16
16
|
}
|
17
|
-
if cookies[:
|
17
|
+
if cookies[:mints_user_session_token]
|
18
18
|
session_token = cookies[:mints_user_session_token]
|
19
19
|
headers["Authorization"] = "Bearer #{session_token}"
|
20
20
|
end
|
data/lib/pub.rb
CHANGED
@@ -5,6 +5,10 @@ module Mints
|
|
5
5
|
# == Public context API
|
6
6
|
# Pub class contains functions that needs only an API key as authentication
|
7
7
|
# == Usage example
|
8
|
+
# === For Mints::BaseController inheritance:
|
9
|
+
# If the controller is inheriting from Mints::BaseController, Only use the class variable *mints_pub* _Example:_
|
10
|
+
# @mints_pub.get_stories
|
11
|
+
# === For standalone usage:
|
8
12
|
# Initialize
|
9
13
|
# pub = Mints::Pub.new(mints_url, api_key)
|
10
14
|
# or if host and api_key are provided by mints_config.yml.erb
|
@@ -12,23 +16,58 @@ module Mints
|
|
12
16
|
# Call any function
|
13
17
|
# pub.get_products
|
14
18
|
# == Single resource options
|
15
|
-
# * +include+ - [
|
16
|
-
#
|
17
|
-
# * +
|
18
|
-
#
|
19
|
+
# * +include+ - [_String_] Specify additional information to be included in the results from the objects relations. _Example:_
|
20
|
+
# { "include": "events" }
|
21
|
+
# * +attributes+ - [_Boolean_] If present, attributes will be returned for each record in the results. _Example:_
|
22
|
+
# { "attributes": true }
|
23
|
+
# * +categories+ - [_Boolean_] If present, categories will be returned for each record in the results. _Example:_
|
24
|
+
# { "categories": true }
|
25
|
+
# * +tags+ - [_Boolean_] If present, tags will be returned for each record in the results. _Example:_
|
26
|
+
# { "tags": true }
|
27
|
+
# * +fields+ - [_String_] Specify the fields that you want to be returned. If empty, all fields are returned. The object index can also be used to specify specific fields from relations. _Example:_
|
28
|
+
# { "fields": "id, title, slug" }
|
29
|
+
# { "fields[products]": "id, title, slug" }
|
30
|
+
#
|
19
31
|
# == Resource collections options
|
20
|
-
# * +search+ - [
|
21
|
-
#
|
22
|
-
# * +
|
23
|
-
#
|
24
|
-
# * +
|
25
|
-
#
|
26
|
-
# * +
|
27
|
-
#
|
28
|
-
#
|
29
|
-
#
|
30
|
-
#
|
31
|
-
#
|
32
|
+
# * +search+ - [_String_] If present, it will search for records matching the search string. _Example:_
|
33
|
+
# { "search": "searchstring" }
|
34
|
+
# * +scopes+ - [_String_] If present, it will apply the specified Model's scopes. _Example:_
|
35
|
+
# { "scopes": "approved, recent" }
|
36
|
+
# * +filters+ - [_String_] This is a powerful parameter that allows the data to be filtered by any of its fields. Currently only exact matches are supported. _Example:_
|
37
|
+
# { "filters[title]": "titleToFilter" }
|
38
|
+
# * +jfilters+ - [_String_] A complex filter configuration, as used in segments, in JSON format, base64 encoded and URLencoded. _Example:_
|
39
|
+
# jfilter = {
|
40
|
+
# "type":"group",
|
41
|
+
# "items":[
|
42
|
+
# {
|
43
|
+
# "type":"attribute",
|
44
|
+
# "operator":"==",
|
45
|
+
# "slug":"title",
|
46
|
+
# "value":"Action movies"
|
47
|
+
# }
|
48
|
+
# ],
|
49
|
+
# "operator":"or"
|
50
|
+
# }
|
51
|
+
# options = { "jfilters": jfilter }
|
52
|
+
# * +catfilters+ - [_String_] filter by categories. _Example:_
|
53
|
+
# { "catfilters": "categoryName" }
|
54
|
+
# * +fields+ - [_String_] Specify the fields that you want to be returned. If empty, all fields are returned. The object index can also be used to specify specific fields from relations. _Example:_
|
55
|
+
# { "fields": "id, title, slug" }
|
56
|
+
# { "fields[products]": "id, title, slug" }
|
57
|
+
# * +sort+ - [_String_] The name of the field to perform the sort. Prefix the value with a minus sign - for ascending order. _Example:_
|
58
|
+
# { "sort": "title" }
|
59
|
+
# { "sort": "-title" }
|
60
|
+
# * +include+ - [_String_] Specify additional information to be included in the results from the objects relations. _Example:_
|
61
|
+
# { "include": "events" }
|
62
|
+
# * +attributes+ - [_Boolean_] If present, attributes will be returned for each record in the results. _Example:_
|
63
|
+
# { "attributes": true }
|
64
|
+
# * +categories+ - [_Boolean_] If present, categories will be returned for each record in the results. _Example:_
|
65
|
+
# { "categories": true }
|
66
|
+
# * +taxonomies+ - [_Boolean_] If present, taxonomies will be returned for each record in the results. _Example:_
|
67
|
+
# { "taxonomies": true }
|
68
|
+
# * +tags+ - [_Boolean_] If present, tags will be returned for each record in the results. _Example:_
|
69
|
+
# { "tags": true }
|
70
|
+
|
32
71
|
class Pub
|
33
72
|
attr_reader :client
|
34
73
|
|
@@ -42,8 +81,8 @@ module Mints
|
|
42
81
|
# * +contact_token+ - [String] Cookie 'mints_contact_id' value (mints_contact_token)
|
43
82
|
# ==== Return
|
44
83
|
# Returns a Client object
|
45
|
-
def initialize(host, api_key,
|
46
|
-
@client = Mints::Client.new(host, api_key, 'public',
|
84
|
+
def initialize(host, api_key, contact_token_id = nil, debug = false)
|
85
|
+
@client = Mints::Client.new(host, api_key, 'public', nil, contact_token_id, debug)
|
47
86
|
end
|
48
87
|
|
49
88
|
##
|
@@ -77,58 +116,15 @@ module Mints
|
|
77
116
|
end
|
78
117
|
|
79
118
|
##
|
80
|
-
# === Get
|
81
|
-
# Get a
|
82
|
-
#
|
83
|
-
# ==== Parameters
|
84
|
-
# * +slug+ - [String] It's the slug
|
85
|
-
# * +options+ - [Hash] List of {Single Resource Options}[#class-Mints::Pub-label-Single+resource+options] shown above can be used as parameter
|
86
|
-
def get_content_page(slug, options = nil)
|
87
|
-
return @client.raw("get", "/content/content-pages/#{slug}", options)
|
88
|
-
end
|
89
|
-
|
90
|
-
##
|
91
|
-
# === Get Content Templates.
|
92
|
-
# Get a collection of content templates
|
93
|
-
#
|
94
|
-
# ==== Parameters
|
95
|
-
# * +options+ - [Hash] List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter
|
96
|
-
def get_content_templates(options = nil)
|
97
|
-
return @client.raw("get", "/content/content-templates", options)
|
98
|
-
end
|
99
|
-
|
100
|
-
##
|
101
|
-
# === Get Content Template.
|
102
|
-
# Get a single content template.
|
103
|
-
#
|
104
|
-
# ==== Parameters
|
105
|
-
# * +slug+ - [String] It's the string identifier generated by Mints
|
106
|
-
# * +options+ - [Hash] List of {Single Resource Options}[#class-Mints::Pub-label-Single+resource+options] shown above can be used as parameter
|
107
|
-
def get_content_template(slug, options = nil)
|
108
|
-
return @client.raw("get", "/content/content-templates/#{slug}", options)
|
109
|
-
end
|
110
|
-
|
111
|
-
##
|
112
|
-
# === Get Content Instances.
|
113
|
-
# Get a collection of content instances
|
119
|
+
# === Get Asset Info.
|
120
|
+
# Get a description of an Asset
|
114
121
|
#
|
115
122
|
# ==== Parameters
|
116
|
-
# * +
|
117
|
-
def
|
118
|
-
return @client.raw("get", "/content/
|
123
|
+
# * +slug+ - [String] It's the string identifier of the asset.
|
124
|
+
def get_asset_info(slug)
|
125
|
+
return @client.raw("get", "/content/asset-info/#{slug}")
|
119
126
|
end
|
120
|
-
|
121
|
-
##
|
122
|
-
# === Get Content Instance.
|
123
|
-
# Get a single content instance.
|
124
|
-
#
|
125
|
-
# ==== Parameters
|
126
|
-
# * +slug+ - [String] It's the string identifier generated by Mints
|
127
|
-
# * +options+ - [Hash] List of {Single Resource Options}[#class-Mints::Pub-label-Single+resource+options] shown above can be used as parameter
|
128
|
-
def get_content_instance(slug, options = nil)
|
129
|
-
return @client.raw("get", "/content/content-instances/#{slug}", options)
|
130
|
-
end
|
131
|
-
|
127
|
+
|
132
128
|
##
|
133
129
|
# === Get Stories.
|
134
130
|
# Get a collection of stories
|
@@ -179,71 +175,81 @@ module Mints
|
|
179
175
|
# * +data+ - [Hash] Data to be submited
|
180
176
|
def submit_form(data)
|
181
177
|
return @client.raw("post", "/content/forms/submit", nil, data)
|
182
|
-
end
|
178
|
+
end
|
183
179
|
|
184
180
|
##
|
185
|
-
# === Get
|
186
|
-
# Get a collection of
|
181
|
+
# === Get Content Instances.
|
182
|
+
# Get a collection of content instances
|
187
183
|
#
|
188
184
|
# ==== Parameters
|
189
185
|
# * +options+ - [Hash] List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter
|
190
|
-
def
|
191
|
-
return @client.raw("get", "/
|
186
|
+
def get_content_instances(options = nil)
|
187
|
+
return @client.raw("get", "/content/content-instances", options)
|
192
188
|
end
|
193
189
|
|
194
190
|
##
|
195
|
-
# === Get
|
196
|
-
# Get a single
|
191
|
+
# === Get Content Instance.
|
192
|
+
# Get a single content instance.
|
197
193
|
#
|
198
194
|
# ==== Parameters
|
199
195
|
# * +slug+ - [String] It's the string identifier generated by Mints
|
200
196
|
# * +options+ - [Hash] List of {Single Resource Options}[#class-Mints::Pub-label-Single+resource+options] shown above can be used as parameter
|
201
|
-
def
|
202
|
-
return @client.raw("get", "/
|
197
|
+
def get_content_instance(slug, options = nil)
|
198
|
+
return @client.raw("get", "/content/content-instances/#{slug}", options)
|
203
199
|
end
|
204
200
|
|
205
201
|
##
|
206
|
-
# === Get
|
207
|
-
# Get
|
202
|
+
# === Get Content Pages.
|
203
|
+
# Get all content pages.
|
208
204
|
#
|
209
205
|
# ==== Parameters
|
210
206
|
# * +options+ - [Hash] List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter
|
211
|
-
def
|
212
|
-
return @client.raw("get", "/
|
207
|
+
def get_content_pages(options = nil)
|
208
|
+
return @client.raw("get", "/content/content-pages", options)
|
213
209
|
end
|
214
210
|
|
215
211
|
##
|
216
|
-
# === Get
|
217
|
-
# Get a
|
212
|
+
# === Get Content Page.
|
213
|
+
# Get a single content page
|
218
214
|
#
|
219
215
|
# ==== Parameters
|
220
|
-
# * +slug+ - [String] It's the
|
216
|
+
# * +slug+ - [String] It's the slug
|
221
217
|
# * +options+ - [Hash] List of {Single Resource Options}[#class-Mints::Pub-label-Single+resource+options] shown above can be used as parameter
|
222
|
-
def
|
223
|
-
return @client.raw("get", "/
|
218
|
+
def get_content_page(slug, options = nil)
|
219
|
+
return @client.raw("get", "/content/content-pages/#{slug}", options)
|
220
|
+
end
|
221
|
+
|
222
|
+
##
|
223
|
+
# === Get Locations.
|
224
|
+
# Get all locations.
|
225
|
+
#
|
226
|
+
# ==== Parameters
|
227
|
+
# * +options+ - [Hash] List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter
|
228
|
+
def get_locations(options = nil)
|
229
|
+
return @client.raw("get", "/ecommerce/locations", options)
|
224
230
|
end
|
225
231
|
|
226
232
|
##
|
227
|
-
# === Get
|
228
|
-
# Get a collection of
|
233
|
+
# === Get Products.
|
234
|
+
# Get a collection of products.
|
229
235
|
#
|
230
236
|
# ==== Parameters
|
231
237
|
# * +options+ - [Hash] List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter
|
232
|
-
def
|
233
|
-
return @client.raw("get", "/ecommerce/
|
238
|
+
def get_products(options = nil)
|
239
|
+
return @client.raw("get", "/ecommerce/products", options)
|
234
240
|
end
|
235
241
|
|
236
242
|
##
|
237
|
-
# === Get
|
238
|
-
# Get a single
|
243
|
+
# === Get Product.
|
244
|
+
# Get a single product.
|
239
245
|
#
|
240
246
|
# ==== Parameters
|
241
247
|
# * +slug+ - [String] It's the string identifier generated by Mints
|
242
248
|
# * +options+ - [Hash] List of {Single Resource Options}[#class-Mints::Pub-label-Single+resource+options] shown above can be used as parameter
|
243
|
-
def
|
244
|
-
return @client.raw("get", "/ecommerce/
|
249
|
+
def get_product(slug, options = nil)
|
250
|
+
return @client.raw("get", "/ecommerce/products/#{slug}", options)
|
245
251
|
end
|
246
|
-
|
252
|
+
|
247
253
|
##
|
248
254
|
# === Get categories.
|
249
255
|
# Get a collection of categories.
|
@@ -286,16 +292,6 @@ module Mints
|
|
286
292
|
return @client.raw("get", "/config/tags/#{slug}", options)
|
287
293
|
end
|
288
294
|
|
289
|
-
##
|
290
|
-
# === Get Attributes.
|
291
|
-
# Get a collection of attributes.
|
292
|
-
#
|
293
|
-
# ==== Parameters
|
294
|
-
# * +options+ - [Hash] List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter
|
295
|
-
def get_attributes(options = nil)
|
296
|
-
return @client.raw("get", "/config/attributes", options)
|
297
|
-
end
|
298
|
-
|
299
295
|
##
|
300
296
|
# === Get Taxonomies.
|
301
297
|
# Get a collection of taxonomies.
|
@@ -316,5 +312,15 @@ module Mints
|
|
316
312
|
def get_taxonomy(slug, options = nil)
|
317
313
|
return @client.raw("get", "/config/taxonomies/#{slug}", options)
|
318
314
|
end
|
315
|
+
|
316
|
+
##
|
317
|
+
# === Get Attributes.
|
318
|
+
# Get a collection of attributes.
|
319
|
+
#
|
320
|
+
# ==== Parameters
|
321
|
+
# * +options+ - [Hash] List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter
|
322
|
+
def get_attributes(options = nil)
|
323
|
+
return @client.raw("get", "/config/attributes", options)
|
324
|
+
end
|
319
325
|
end
|
320
326
|
end
|
data/lib/user.rb
CHANGED
@@ -29,7 +29,7 @@ module Mints
|
|
29
29
|
class User
|
30
30
|
attr_reader :client
|
31
31
|
def initialize(host, api_key, session_token = nil, debug = false)
|
32
|
-
@client = Mints::Client.new(host, api_key, 'user', session_token, debug)
|
32
|
+
@client = Mints::Client.new(host, api_key, 'user', session_token, nil, debug)
|
33
33
|
end
|
34
34
|
|
35
35
|
def login(email, password)
|
@@ -43,6 +43,31 @@ module Mints
|
|
43
43
|
end
|
44
44
|
return response
|
45
45
|
end
|
46
|
+
|
47
|
+
def magic_link_login(token)
|
48
|
+
response = @client.raw("get", "/users/magic-link-login/#{token}", nil, nil, '/api/v1')
|
49
|
+
return response
|
50
|
+
end
|
51
|
+
|
52
|
+
##
|
53
|
+
# === Send magic link to user
|
54
|
+
def send_magic_link(email, redirectUrl = '', lifeTime = 24)
|
55
|
+
data = {
|
56
|
+
email: email,
|
57
|
+
redirectUrl: redirectUrl,
|
58
|
+
lifeTime: lifeTime
|
59
|
+
}
|
60
|
+
response = @client.raw("post", "/users/magic-link", nil, { data: data }, '/api/v1')
|
61
|
+
return response
|
62
|
+
end
|
63
|
+
|
64
|
+
##
|
65
|
+
# === Me.
|
66
|
+
# Get contact logged info
|
67
|
+
#
|
68
|
+
def me
|
69
|
+
return @client.get__profile__me
|
70
|
+
end
|
46
71
|
######################################### CRM #########################################
|
47
72
|
##
|
48
73
|
# === Get contacts.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mints
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ruben Gomez Garcia, Omar Mora, Luis Payan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -120,6 +120,7 @@ files:
|
|
120
120
|
- README.md
|
121
121
|
- lib/client.rb
|
122
122
|
- lib/contact.rb
|
123
|
+
- lib/generators/mints_assets_controller.rb
|
123
124
|
- lib/generators/mints_config.yml.erb
|
124
125
|
- lib/generators/mints_contact_controller.rb
|
125
126
|
- lib/generators/mints_files_generator.rb
|