tinyforms/app/controllers/forms_controller.rb
2020-04-28 01:40:06 +02:00

58 lines
1.2 KiB
Ruby

# frozen_string_literal: true
require 'google/apis/sheets_v4'
require 'google/api_client/client_secrets'
class FormsController < ApplicationController
before_action :require_login, except: [:form]
layout 'submission', only: [:form]
def new
@form = current_user.forms.build(backend_name: 'google_sheets')
end
def show
@form = current_user.forms.find_by!(token: params[:id])
@submissions = @form.submissions
end
def index
@forms = current_user.forms
end
def create
@form = current_user.forms.build(form_params)
if @form.save
redirect_to form_url(@form)
else
render :new
end
end
def edit
@form = current_user.forms.find_by!(token: params[:id])
end
def update
@form = current_user.forms.find_by!(token: params[:id])
if @form.update(form_params)
redirect_to form_url(@form)
else
render :edit
end
end
def setup
@form = current_user.forms.find_by!(token: params[:id])
end
def form
@form = Form.find_by!(token: params[:id])
end
private
def form_params
params.require(:form).permit(:title, :thank_you_url, :backend_name, :airtable_table, :airtable_api_key, :airtable_app_key)
end
end