Class: SessionsController

Inherits:
ApplicationController
  • Object
show all
Defined in:
lib/generators/versacommerce_app/templates/app/controllers/sessions_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



8
9
10
# File 'lib/generators/versacommerce_app/templates/app/controllers/sessions_controller.rb', line 8

def create
  authenticate
end

#destroyObject



12
13
14
15
16
# File 'lib/generators/versacommerce_app/templates/app/controllers/sessions_controller.rb', line 12

def destroy
  session[:versacommerce] = nil
  flash[:success]         = "Successfully logged out."
  redirect_to :action => 'new'
end

#finalizeObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/generators/versacommerce_app/templates/app/controllers/sessions_controller.rb', line 18

def finalize
  current_session = VersacommerceAPI::Session.new(params[:shop], params[:t], params)
  if current_session.valid?
    #
    # IF YOU WANT TO SAVE THE TOKEN FOR LATER USE,
    #
    # 1) CREATE A MODEL
    # $ rails generate model user shop:string token:string
    # $ rake db:create && rake db:migrate
    #
    # 2) SAVE THE TOKEN RIGHT HERE
    # User.where(shop: params[:shop]).first_or_create do |user|
    #   user.token = params[:t]
    # end
    #
    # 3) USE THE TOKEN TO CONNECT TO THIS SHOP WITHOUT USER INTERACTION
    # https://github.com/versacommerce/versacommerce_api (see sample code)
    #
    session[:versacommerce] = current_session
    flash[:success]         = "Connection established to: #{params[:shop]}"
    redirect_to return_address
  else
    flash[:warning] = "Connection failed."
    redirect_to :action => 'index'
  end
end

#newObject



4
5
6
# File 'lib/generators/versacommerce_app/templates/app/controllers/sessions_controller.rb', line 4

def new
  authenticate if params[:shop].present?
end