47 lines
1.1 KiB
Ruby
47 lines
1.1 KiB
Ruby
module Public
|
|
class ContactsController < WebBaseController
|
|
def show
|
|
@inquiry = empty_inquiry
|
|
end
|
|
|
|
def create
|
|
result = Contacts::SubmitInquiry.call(params: inquiry_params, ip: request.remote_ip)
|
|
|
|
if result.ok
|
|
redirect_to public_contatti_path, notice: t("flash.contacts.sent")
|
|
return
|
|
end
|
|
|
|
@inquiry = inquiry_params
|
|
flash.now[:alert] = t("flash.contacts.#{result.error}")
|
|
render :show, status: result.error == :throttled ? :too_many_requests : :unprocessable_entity
|
|
end
|
|
|
|
private
|
|
|
|
def inquiry_params
|
|
{
|
|
name: params[:name].to_s,
|
|
email: params[:email].to_s,
|
|
club_name: params[:club_name].to_s,
|
|
topic: params[:topic].to_s,
|
|
message: params[:message].to_s,
|
|
website: params[:website].to_s,
|
|
accept_privacy: params[:accept_privacy].to_s
|
|
}
|
|
end
|
|
|
|
def empty_inquiry
|
|
{
|
|
name: "",
|
|
email: "",
|
|
club_name: "",
|
|
topic: "commercial",
|
|
message: "",
|
|
website: "",
|
|
accept_privacy: ""
|
|
}
|
|
end
|
|
end
|
|
end
|