Class: Mints::Contact

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

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

Initialize.

Class constructor



10
11
12
# File 'lib/contact.rb', line 10

def initialize(host, api_key, session_token = nil, contact_token_id = nil, debug = false)
  @client = Mints::Client.new(host, api_key, "contact", session_token, contact_token_id, debug)
end

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.



5
6
7
# File 'lib/contact.rb', line 5

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 - [] A new password allocated in a data key.

Example

@mints_contact.('[email protected]', 'helloword')
data = { "data": { "password": "123456" } }
@mints_contact.change_password(data)


114
115
116
# File 'lib/contact.rb', line 114

def change_password(data)
  return @client.raw("post", "/contacts/change-password", nil, data)
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 protected]", "helloword")


25
26
27
28
29
30
31
32
33
34
35
# File 'lib/contact.rb', line 25

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

#logoutObject

Logout.

Ends a contact session previously logged.

Example

@mints_contact.('[email protected]', 'helloword')
@mints_contact.logout


94
95
96
97
98
99
100
# File 'lib/contact.rb', line 94

def logout
  response = @client.raw("post", "/contacts/logout") if session_token?
  if response["success"]
    @client.session_token = nil
  end 
  return response
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 that will be logged.

Example

@mints_contact.(
  "d8618c6d-a165-41cb-b3ec-d053cbf30059:zm54HtRdfHED8dpILZpjyqjPIceiaXNLfOklqM92fveBS0nDtyPYBlI4CPlPe3zq"
)


49
50
51
52
53
54
55
# File 'lib/contact.rb', line 49

def (token)
  response = @client.raw("get", "/contacts/magic-link-login/#{token}", nil, '/api/v1')
  if response.key? "session_token"
    @client.session_token = response["session_token"]
  end
  return response
end

#meObject

Me.

Get contact logged info.

Example

@mints_contact.me


168
169
170
# File 'lib/contact.rb', line 168

def me
  return @client.raw("get", "/contacts/me")
end

#oauth_login(data) ⇒ Object

OAuth Login.

Login a contact using oauth



157
158
159
# File 'lib/contact.rb', line 157

def (data)
  return @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 - [] It’s a data key where will be hosted the destination email.

Example

data = { "data": { "email": "[email protected]" } }
@mints_contact.recover_password(data)


129
130
131
# File 'lib/contact.rb', line 129

def recover_password(data)
  return @client.raw("post", "/contacts/recover-password", nil, data)
end

#register(data) ⇒ Object

Register.

Register a contact.

Parameters:

  • data - [] It’s the register data.

Example

data = { "data": {
  "email": "[email protected]",
  "given_name": "Carlos",
  "last_name": "Fernandez",
  "password": "123456"
} }
@mints_contact.register(data);


218
219
220
# File 'lib/contact.rb', line 218

def register(data)
  return @client.raw("post", "/contacts/register", nil, data)
end

#reset_password(data) ⇒ Object

Reset Password.

Reset password using a token. The token is obtained by recover_password method.

Parameters:

  • data - [] It’s a set of data which contains all the information to reset a contact password.

Example

data = { "data": { 
  "email": "[email protected]", 
  "password": "helloword", 
  "password_confirmation": "helloword", 
  "token": "644aa3aa0831d782cc42e42b11aedea9a2234389af4f429a8d96651295ecfa09" 
} }
@mints_contact.reset_password(data)


149
150
151
# File 'lib/contact.rb', line 149

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

Send magic link to contact by email. That magic link will be used in magic_link_login method.

Parameters:

  • email - [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 protected]", "")

Second Example

@mints_contact.send_magic_link("[email protected]", "", "", 1440, 3)


74
75
76
77
78
79
80
81
82
83
84
# File 'lib/contact.rb', line 74

def send_magic_link(email, template_slug, redirectUrl = '', lifeTime = 1440, maxVisits = nil)
  data = {
    email: email,
    lifeTime: lifeTime,
    maxVisits: maxVisits,
    redirectUrl: redirectUrl,
    templateId: template_slug
  }
  response = @client.raw("post", "/contacts/magic-link", nil, { data: data }, '/api/v1')
  return response
end

#statusObject

Status.

Get contact logged status.

Example

@mints_contact.status


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

def status
  return @client.raw("get", "/contacts/status")
end

#update(data) ⇒ Object

Update.

Update logged contact attributes.

Parameters:

  • data - [] It’s the data to update with a session active.

Example

@mints_contact.("[email protected]", "helloword")
data = { "data": { 
  "given_name": "Alonso", 
  "last_name": "Garcia"
} }
@mints_contact.update(data)


198
199
200
# File 'lib/contact.rb', line 198

def update(data)
  return @client.raw("put", "/contacts/update", nil, data)
end