Module: ZuoraConnect::Controllers::Helpers

Extended by:
ActiveSupport::Concern
Defined in:
lib/zuora_connect/controllers/helpers.rb

Instance Method Summary collapse

Instance Method Details

#authenticate_requestObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/zuora_connect/controllers/helpers.rb', line 6

def authenticate_request
  if ZuoraConnect.configuration.mode == "Production"
    data_present = set_session
    if !session["valid"] && data_present
      res = HTTParty.get(ZuoraConnect.configuration.url + "/api/v1/tools/tasks/#{session["appInstance"]}.json",:basic_auth => auth = {:username => session["user"], :password => session["key"]})
      if res.code == 200
        session["valid"] = true
      end
    end
    if !session["valid"]
      redirect_to "/500.html"
    end
    set_app_instance(session["appInstance"].to_i) if session["appInstance"] || ( session["appInstance"] && Apartment::Tenant.current != session["appInstance"])
    @appinstance.new_session(session["user"], session["key"]) if @appinstance && !@appinstance.valid
  else
    dev_mode
    set_app_instance(session["appInstance"].to_i)
    @appinstance.options = ZuoraConnect.configuration.dev_mode_options
    @appinstance.logins = ZuoraConnect.configuration.dev_mode_logins
    @appinstance.mode = ZuoraConnect.configuration.dev_mode_mode
  end
end

#check_adminObject



64
65
66
# File 'lib/zuora_connect/controllers/helpers.rb', line 64

def check_admin
  redirect_to "/500.html" if session["admin"] != "true"
end

#dev_modeObject



48
49
50
51
52
53
# File 'lib/zuora_connect/controllers/helpers.rb', line 48

def dev_mode
  session["appInstance"] = "1"
  session["user"] = "test"
  session["key"] = "test"
  session["valid"] = true
end

#set_app_instance(id) ⇒ Object



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

def set_app_instance(id)
  if ZuoraConnect::AppInstance.where(:id => id).size == 0
    ZuoraConnect::AppInstance.create!(:id => id )
    Apartment::Tenant.create(id)
  end
  @appinstance = ZuoraConnect::AppInstance.find(id)
  Apartment::Tenant.switch!(@appinstance.id)
end

#set_sessionObject



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/zuora_connect/controllers/helpers.rb', line 29

def set_session
  session["valid"] |= false
  if request["data"]
    values = JSON.parse(ZuoraConnect::AppInstance.decrypt_response(Base64.urlsafe_decode64(request["data"])))
    if values["param_data"]
      values["param_data"].each do |k ,v|
        params[k] = v
      end
    end
    session["user"] = values["user"]
    session["key"] = values["key"]
    session["valid"] = false
    session["appInstance"] = values["appInstance"]
    session["admin"] = values["admin"] ? values["admin"] : false
    return true
  end
  return false
end