Class: Mints::BaseApiController

Inherits:
ActionController::Base
  • Object
show all
Defined in:
lib/mints/controllers/base_api_controller.rb

Instance Method Summary collapse

Instance Method Details

#mints_contact_login(email, password) ⇒ Object

Mints Contact Login.

Starts a contact session in mints.cloud and set a session cookie



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/mints/controllers/base_api_controller.rb', line 8

def (email, password)
  # Login in mints

  response = @mints_contact.(email, password)
  # Get session token from response

  session_token = response['session_token']
  id_token = response['contact']['contact_token'] ? response['contact']['contact_token'] : response['contact']['id_token']
  # Set a permanent cookie with the session token

  cookies.permanent[:mints_contact_session_token] = { value: session_token, secure: true, httponly: true }
  cookies.permanent[:mints_contact_id] = { value: id_token, secure: true, httponly: true }
  @contact_token = id_token
end

#mints_contact_logoutObject

Mints Contact Logout.

Destroy session from mints.cloud and delete local session cookie



43
44
45
46
47
48
49
50
# File 'lib/mints/controllers/base_api_controller.rb', line 43

def mints_contact_logout
    # Logout from mints

    @mints_contact.logout
    # Delete local cookie

    cookies.delete(:mints_contact_session_token)
    cookies.delete(:mints_contact_id)
    @contact_token = nil
end

Mints contact Login.

Starts a contact session in mints.cloud and set a session cookie



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/mints/controllers/base_api_controller.rb', line 23

def (hash)
  # Login in mints

  response = @mints_contact.(hash)
  if response['data']
    # Get session token from response

    session_token = response['data']['session_token']
    id_token = response['data']['contact']['contact_token'] ? response['data']['contact']['contact_token'] : response['data']['contact']['id_token']
    # Set a permanent cookie with the session token

    cookies.permanent[:mints_contact_session_token] = { value: session_token, secure: true, httponly: true }
    cookies.permanent[:mints_contact_id] = { value: id_token, secure: true, httponly: true }
    @contact_token = id_token
    redirect_to response['data']['redirect_url'] ? response['data']['redirect_url'] : '/'
  else
    redirect_to '/'
  end
end

#mints_user_login(email, password) ⇒ Object

Mints user Login.

Starts a user session in mints.cloud and set a session cookie



55
56
57
58
59
60
61
62
# File 'lib/mints/controllers/base_api_controller.rb', line 55

def (email, password)
  # Login in mints

  response = @mints_user.(email, password)
  # Get session token from response

  session_token = response['api_token']
  # Set a permanent cookie with the session token

  cookies[:mints_user_session_token] = { value: session_token, secure: true, httponly: true, expires: 1.day }
end

#mints_user_logoutObject

Mints user Logout.

Destroy session from mints.cloud and delete local session cookie



82
83
84
85
86
87
# File 'lib/mints/controllers/base_api_controller.rb', line 82

def mints_user_logout
  # Logout from mints

  # @mints_user.logout

  # Delete local cookie

  cookies.delete(:mints_user_session_token)
end

Mints user Login.

Starts a user session in mints.cloud and set a session cookie



67
68
69
70
71
72
73
74
75
76
77
# File 'lib/mints/controllers/base_api_controller.rb', line 67

def (hash)
  # Login in mints

  response = @mints_user.(hash)
  if response['data']
    # Set a cookie with the session token

    cookies[:mints_user_session_token] = { value: response['data']['api_token'], secure: true, httponly: true,  expires: 1.day }
    redirect_to response['data']['redirect_url'] ? response['data']['redirect_url'] : '/'
  else
    redirect_to '/'
  end
end