Class: Mints::Contact

Inherits:
Object
  • Object
show all
Includes:
MintsHelper
Defined in:
lib/contact.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from MintsHelper

#correct_json, #data_transform, #get_query_results

Constructor Details

#initialize(host, api_key, session_token = nil, contact_token_id = nil, debug = false) ⇒ Contact

Initialize.

Class constructor.

Parameters

host

(String) – It’s the visitor IP.

api_key

(String) – Mints instance api key.

contact_token_id

(Integer) – Cookie ‘mints_contact_id’ value (mints_contact_token).

Return

Returns a Contact object

[View source]

25
26
27
28
# File 'lib/contact.rb', line 25

def initialize(host, api_key, session_token = nil, contact_token_id = nil, debug = false)
  @contact_v1_url = '/api/contact/v1'
  @client = Mints::Client.new(host, api_key, 'contact', session_token, contact_token_id, nil, debug)
end

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.


13
14
15
# File 'lib/contact.rb', line 13

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 = @mints_contact.change_password(data)
[View source]

236
237
238
# File 'lib/contact.rb', line 236

def change_password(data)
  @client.raw('post', '/change-password', nil, data_transform(data), @contact_v1_url)
end

#login(email, password) ⇒ Object

Login.

Starts a contact session.

Parameters

email

(String) – The email that will be logged.

password

(String) – The password of the email.

Example

@mints_contact.('email@example.com', 'password')
[View source]

61
62
63
64
65
66
67
68
69
70
# File 'lib/contact.rb', line 61

def (email, password)
  data = {
    email: email,
    password: password
  }
  response = @client.raw('post', '/contacts/login', nil, data_transform(data))
  @client.session_token = response['session_token'] if response.key? 'session_token'

  response
end

#logoutObject

Logout.

Ends a contact session previously logged.

Example

@data = @mints_contact.logout
[View source]

217
218
219
220
221
222
223
224
# File 'lib/contact.rb', line 217

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.

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

@mints_contact.(
  'd8618c6d-a165-41cb-b3ec-d053cbf30059:zm54HtRdfHED8dpILZpjyqjPIceiaXNLfOklqM92fveBS0nDtyPYBlI4CPlPe3zq'
)
[View source]

123
124
125
126
127
128
# File 'lib/contact.rb', line 123

def (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 = @mints_contact.me

Second Example

options = { 
  attributes: true,
  taxonomies: true
} 
@data = @mints_contact.me(options)
[View source]

180
181
182
# File 'lib/contact.rb', line 180

def me(options = nil)
  @client.raw('get', '/me', options, nil, @contact_v1_url)
end

#oauth_login(data) ⇒ Object

OAuth Login.

Login a contact using oauth.

[View source]

108
109
110
# File 'lib/contact.rb', line 108

def (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' }
@mints_contact.recover_password(data)
[View source]

82
83
84
# File 'lib/contact.rb', line 82

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'
}
@mints_contact.register(data);
[View source]

47
48
49
# File 'lib/contact.rb', line 47

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'
}
@mints_contact.reset_password(data)
[View source]

101
102
103
# File 'lib/contact.rb', line 101

def reset_password(data)
  @client.raw('post', '/contacts/reset-password', nil, data_transform(data))
end

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

@mints_contact.send_magic_link('email@example.com', 'template_slug')

Second Example

@mints_contact.send_magic_link('+526561234567', 'template_slug', '', 1440, 3, 'whatsapp')
[View source]

146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
# File 'lib/contact.rb', line 146

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

#statusObject

Status.

Get contact logged status.

Example

@data = @mints_contact.status
[View source]

190
191
192
# File 'lib/contact.rb', line 190

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 = @mints_contact.update(data)
[View source]

207
208
209
# File 'lib/contact.rb', line 207

def update(data)
  @client.raw('put', '/update', nil, data_transform(data), @contact_v1_url)
end