177 lines
4.1 KiB
Ruby
Executable File
177 lines
4.1 KiB
Ruby
Executable File
class ApplicationController < ActionController::Base
|
|
# Prevent CSRF attacks by raising an exception.
|
|
# For APIs, you may want to use :null_session instead.
|
|
protect_from_forgery with: :exception
|
|
|
|
|
|
before_filter :set_image_var
|
|
before_filter :set_order
|
|
|
|
before_filter :set_locale
|
|
|
|
def set_locale
|
|
# if params[:locale] is nil then I18n.default_locale will be used
|
|
#I18n.locale = params[:locale]#"fr" #
|
|
|
|
I18n.locale = params[:locale] || "fr"
|
|
|
|
@lang = LangSite.find_by_slug I18n.locale.to_s
|
|
end
|
|
|
|
def default_url_options(options={})
|
|
{ :locale => I18n.locale } #
|
|
end
|
|
|
|
def set_image_var
|
|
@page_images_credits = []
|
|
end
|
|
|
|
def auth_inscrit
|
|
if !current_inscrit
|
|
redirect_to new_inscrits_auth_path
|
|
end
|
|
end
|
|
|
|
def payplug_init_payement(options)
|
|
|
|
api_key = CONFIG_PAYPLUG['api_key']
|
|
|
|
host = "http://#{HOSTNAME}"
|
|
|
|
@data = {
|
|
:amount => (options[:amount]*100),
|
|
:currency => "EUR",
|
|
:customer =>{
|
|
:email => options[:email],
|
|
:first_name => options[:first_name],
|
|
:last_name => options[:last_name]
|
|
},
|
|
:hosted_payment =>{
|
|
:return_url => options[:return_url],
|
|
:cancel_url => options[:cancel_url]
|
|
},
|
|
:notification_url => options[:notification_url],
|
|
:metadata => {
|
|
:product_order_id => options[:product_order_id],
|
|
:product_order_payment_id => options[:product_order_payment_id]
|
|
},
|
|
:save_card => options[:save_card],
|
|
:force_3ds => true
|
|
}
|
|
|
|
@c = Curl::Easy.new("https://api.payplug.com/v1/payments") do |curl|
|
|
curl.headers["Authorization"] = "Bearer "+api_key
|
|
curl.headers["Content-Type"] = "application/json"
|
|
|
|
curl.verbose = true
|
|
end
|
|
|
|
|
|
@c.http_post(@data.to_json)
|
|
|
|
@new_payplug_payment = JSON.parse(@c.body_str)
|
|
|
|
end
|
|
|
|
def payplug_retrieve_payement(id)
|
|
api_key = CONFIG_PAYPLUG['api_key']
|
|
host = "http://#{HOSTNAME}"
|
|
|
|
@c = Curl::Easy.new("https://api.payplug.com/v1/payments/#{id}") do |curl|
|
|
curl.headers["Authorization"] = "Bearer "+api_key
|
|
curl.headers["Content-Type"] = "application/json"
|
|
|
|
|
|
curl.verbose = true
|
|
end
|
|
|
|
|
|
|
|
@c.http_get()
|
|
|
|
@response = JSON.parse(@c.body_str)
|
|
end
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def auth_admin
|
|
if !current_admin
|
|
redirect_to new_admin_admin_auth_path
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
def auth_product_customer
|
|
|
|
session[:devise_id] = params[:d] if params[:d]
|
|
if !current_product_customer
|
|
|
|
session[:before_auth_url] = request.url
|
|
redirect_to new_public_product_customers_auth_path(:p => params[:p], :for_annonce => (true if params[:controller] == "public/annonces"), :for_mail => (true if params[:controller] == "public/product_customers" and params[:action] == "mail"))
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
private
|
|
|
|
def current_product_customer
|
|
if cookies[:product_customer_auth_token] and ProductCustomer.exists?(:token => cookies[:product_customer_auth_token])
|
|
a_c = ProductCustomer.find_by_token(cookies[:product_customer_auth_token])
|
|
if !a_c.lock
|
|
@current_product_customer = a_c
|
|
else
|
|
cookies[:product_customer_auth_token] = nil
|
|
|
|
nil
|
|
end
|
|
else
|
|
nil
|
|
end
|
|
|
|
end
|
|
|
|
def current_admin
|
|
|
|
if cookies[:admin_remember_token]
|
|
if @current_admin = Admin.find_by_remember_token(cookies[:admin_remember_token])
|
|
@current_admin = Admin.find_by_remember_token(cookies[:admin_remember_token])
|
|
else
|
|
cookies[:admin_remember_token] =nil
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
def current_inscrit
|
|
if session[:inscrit_id] and Inscrit.exists?(session[:inscrit_id])
|
|
@current_inscrit = Inscrit.find(session[:inscrit_id])
|
|
else
|
|
nil
|
|
end
|
|
end
|
|
|
|
def set_order
|
|
if session[:product_order_id] && @product_order = ProductOrder.where(id: session[:product_order_id]).first
|
|
|
|
else
|
|
@product_order = ProductOrder.new
|
|
|
|
@product_order.save
|
|
|
|
session[:product_order_id] = @product_order.id
|
|
end
|
|
end
|
|
|
|
helper_method :current_admin, :current_inscrit, :current_product_customer
|
|
end
|