Class: Cxf::Contact
- Inherits:
-
Object
- Object
- Cxf::Contact
- Includes:
- ContactConfig, ContactContent, ContactEcommerce, CxfHelper, ThreadsHelper
- Defined in:
- lib/contact.rb
Instance Attribute Summary collapse
-
#client ⇒ Object
readonly
Returns the value of attribute client.
Instance Method Summary collapse
-
#change_password(data) ⇒ Object
Change Password.
- #get_client ⇒ Object
-
#initialize(host, api_key, session_token = nil, refresh_token = nil, contact_token_id = nil, debug = false, user_agent = nil, timeouts = {}) ⇒ Contact
constructor
Initialize.
-
#login(email, password) ⇒ Object
Login.
-
#logout ⇒ Object
Logout.
-
#magic_link_login(token) ⇒ Object
Magic Link Login.
-
#me(options = nil) ⇒ Object
Me.
-
#oauth_login(data) ⇒ Object
OAuth Login.
-
#recover_password(data) ⇒ Object
Recover Password.
-
#register(data) ⇒ Object
Register.
-
#reset_password(data) ⇒ Object
Reset Password.
-
#send_magic_link(email_or_phone, template_slug, redirect_url = '', life_time = 1440, max_visits = nil, driver = 'email') ⇒ Object
Send Magic Link.
-
#status ⇒ Object
Status.
-
#update(data) ⇒ Object
Update.
Methods included from ThreadsHelper
Methods included from CxfHelper
#correct_json, #data_transform, #get_query_results
Constructor Details
#initialize(host, api_key, session_token = nil, refresh_token = nil, contact_token_id = nil, debug = false, user_agent = nil, timeouts = {}) ⇒ Contact
Initialize.
Class constructor.
Parameters
- host
-
(String) – It’s the visitor IP.
- api_key
-
(String) – Cxf instance api key.
- contact_token_id
-
(Integer) – Cookie ‘cxf_contact_id’ value (cxf_contact_token).
Return
Returns a Contact object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/contact.rb', line 33 def initialize( host, api_key, session_token = nil, refresh_token = nil, contact_token_id = nil, debug = false, user_agent = nil, timeouts = {} ) @contact_v1_url = '/api/contact/v1' @client = Cxf::Client.new( host, api_key, 'contact', session_token, refresh_token, contact_token_id, nil, debug, timeouts ) @client.user_agent = user_agent end |
Instance Attribute Details
#client ⇒ Object (readonly)
Returns the value of attribute client.
20 21 22 |
# File 'lib/contact.rb', line 20 def client @client end |
Instance Method Details
#change_password(data) ⇒ Object
Change Password.
Change password without email. To change the password a contact must be logged.
Parameters
- data
-
(Hash) – A new password allocated in a data key.
Example
data = { password: 'new_password' }
@data = @cxf_contact.change_password(data)
267 268 269 |
# File 'lib/contact.rb', line 267 def change_password(data) @client.raw('post', '/change-password', nil, data_transform(data), @contact_v1_url) end |
#get_client ⇒ Object
271 272 273 |
# File 'lib/contact.rb', line 271 def get_client @client end |
#login(email, password) ⇒ Object
Login.
Starts a contact session.
Parameters
-
(String) – The email that will be logged.
- password
-
(String) – The password of the email.
Example
@cxf_contact.login('email@example.com', 'password')
90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/contact.rb', line 90 def login(email, password) data = { email: email, password: password } response = @client.raw('post', '/contacts/login', nil, data_transform(data)) if response.key? 'data' and response['data'].key? 'access_token' @client.session_token = response['data']['access_token'] @client.refresh_token = response['data']['refresh_token'] end response end |
#logout ⇒ Object
Logout.
Ends a contact session previously logged.
Example
@data = @cxf_contact.logout
248 249 250 251 252 253 254 255 |
# File 'lib/contact.rb', line 248 def logout if session_token? response = @client.raw('post', '/logout', nil, nil, @contact_v1_url) @client.session_token = nil if response['success'] response end end |
#magic_link_login(token) ⇒ Object
Magic Link Login.
Starts a contact session with a token received in the contact email. The token will be received by send_magic_link method.
Parameters
- token
-
(String) – The email token that will be used to log in.
Example
@cxf_contact.magic_link_login(
'd8618c6d-a165-41cb-b3ec-d053cbf30059:zm54HtRdfHED8dpILZpjyqjPIceiaXNLfOklqM92fveBS0nDtyPYBlI4CPlPe3zq'
)
154 155 156 157 158 159 |
# File 'lib/contact.rb', line 154 def magic_link_login(token) response = @client.raw('get', "/contacts/magic-link-login/#{token}", nil, '/api/v1') @client.session_token = response['session_token'] if response.key? 'session_token' response end |
#me(options = nil) ⇒ Object
Me.
Get contact logged info.
Parameters
- # options
-
(Hash) – List of Resource collection Options shown above can be used as parameter.
First Example
@data = @cxf_contact.me
Second Example
= {
attributes: true,
taxonomies: true
}
@data = @cxf_contact.me()
211 212 213 |
# File 'lib/contact.rb', line 211 def me( = nil) @client.raw('get', '/me', , nil, @contact_v1_url) end |
#oauth_login(data) ⇒ Object
OAuth Login.
Login a contact using oauth.
139 140 141 |
# File 'lib/contact.rb', line 139 def oauth_login(data) @client.raw('post', '/contacts/oauth-login', nil, data) end |
#recover_password(data) ⇒ Object
Recover Password.
Send a email that contains a token to a contact. That token will be used in reset_password to establish a new password.
Parameters
- data
-
(Hash) – It’s a data key where will be hosted the destination email.
Example
data = { email: 'email@example.com' }
@cxf_contact.recover_password(data)
113 114 115 |
# File 'lib/contact.rb', line 113 def recover_password(data) @client.raw('post', '/contacts/recover-password', nil, data_transform(data)) end |
#register(data) ⇒ Object
Register.
Register a contact.
Parameters
- data
-
(Hash) – It’s the register data.
Example
data = {
email: 'email@example.com',
given_name: 'Given Name',
last_name: 'Last Name',
password: 'password'
}
@cxf_contact.register(data);
76 77 78 |
# File 'lib/contact.rb', line 76 def register(data) @client.raw('post', '/contacts/register', nil, data_transform(data)) end |
#reset_password(data) ⇒ Object
Reset Password.
Reset password using a token. The token is obtained by recover_password method.
Parameters
- data
-
(Hash) – It’s a set of data which contains all the information to reset a contact password.
Example
data = {
email: 'email@example.com',
password: 'password',
password_confirmation: 'password',
token: '644aa3aa0831d782cc42e42b11aedea9a2234389af4f429a8d96651295ecfa09'
}
@cxf_contact.reset_password(data)
132 133 134 |
# File 'lib/contact.rb', line 132 def reset_password(data) @client.raw('post', '/contacts/reset-password', nil, data_transform(data)) end |
#send_magic_link(email_or_phone, template_slug, redirect_url = '', life_time = 1440, max_visits = nil, driver = 'email') ⇒ Object
Send Magic Link.
Send magic link to contact by email. That magic link will be used in magic_link_login method.
Parameters
- email_or_phone
-
(String) – Contact’s email.
- template_slug
-
(String) – Email template’s slug to be used in the email.
- redirectUrl
-
(String) – Url to be redirected in the implemented page.
- lifeTime
-
(Integer) – Maximum time of use in minutes.
- maxVisits
-
(Integer) – The maximum number of uses of a token.
First Example
@cxf_contact.send_magic_link('email@example.com', 'template_slug')
Second Example
@cxf_contact.send_magic_link('+526561234567', 'template_slug', '', 1440, 3, 'whatsapp')
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 |
# File 'lib/contact.rb', line 177 def send_magic_link(email_or_phone, template_slug, redirect_url = '', life_time = 1440, max_visits = nil, driver = 'email') data = { driver: driver, lifeTime: life_time, maxVisits: max_visits, redirectUrl: redirect_url, templateId: template_slug } if %w[sms whatsapp].include? driver data['phone'] = email_or_phone else data['email'] = email_or_phone end @client.raw('post', '/contacts/magic-link', nil, data_transform(data), '/api/v1') end |
#status ⇒ Object
Status.
Get contact logged status.
Example
@data = @cxf_contact.status
221 222 223 |
# File 'lib/contact.rb', line 221 def status @client.raw('get', '/status', nil, nil, @contact_v1_url) end |
#update(data) ⇒ Object
Update.
Update logged contact attributes.
Parameters
- data
-
(Hash) – It’s the data to update with a session active.
Example
data = {
given_name: 'Given Name',
last_name: 'Last Name'
}
@data = @cxf_contact.update(data)
238 239 240 |
# File 'lib/contact.rb', line 238 def update(data) @client.raw('put', '/update', nil, data_transform(data), @contact_v1_url) end |