pdfshop/app/controllers/site_controller.rb

52 lines
1.4 KiB
Ruby

# sites logic goes here
class SiteController < ShopController
# include RecaptchaVerifier
def index
set_cookies_and_inc_view(@ss, :index_number_of_views, 'index')
end
def show
@page = PublishedPage.finder(params[:id]).first
raise_404(@page)
add_breadcrumb @page.name, "/site/#{@page.slug}"
set_cookies_and_inc_view(@page, :number_of_views, @page.id)
end
def kontakt
set_cookies_and_inc_view(@ss, :contact_number_of_views, 'kontakt')
end
def preview
@page = AllPage.finder(params[:id]).first
redirect_to '/404.html' if @page.blank?
end
def send_email
if RecaptchaVerifier.verify(params['g-recaptcha-response'], request.ip)
ContactMailer.contact_email(name: params[:name],
message: params[:message],
email: params[:email])
.deliver_now
head :ok
else
head :bad_request
end
end
private
def set_cookies_and_inc_view(object, increment_column_name, pg_name)
if cookies.encrypted[:visited].blank?
cookies.permanent.encrypted[:visited] = JSON.generate([pg_name])
object.increment!(increment_column_name)
else
arr = JSON.parse(cookies.encrypted[:visited])
unless arr.include?(pg_name)
arr << pg_name
cookies.permanent.encrypted[:visited] = JSON.generate(arr)
object.increment!(increment_column_name)
end
end
end
end