DEV: Create form templates (#20189)

This commit is contained in:
Keegan George
2023-02-08 11:21:39 -08:00
committed by GitHub
parent 7622dbcebf
commit 871607a420
34 changed files with 1148 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
# frozen_string_literal: true
class Admin::FormTemplatesController < Admin::StaffController
before_action :ensure_form_templates_enabled
def index
form_templates = FormTemplate.all
render_serialized(form_templates, AdminFormTemplateSerializer, root: "form_templates")
end
def new
end
def create
params.require(:name)
params.require(:template)
begin
template = FormTemplate.create!(name: params[:name], template: params[:template])
render_serialized(template, AdminFormTemplateSerializer, root: "form_template")
rescue FormTemplate::NotAllowed => err
render_json_error(err.message)
end
end
def show
template = FormTemplate.find(params[:id])
render_serialized(template, AdminFormTemplateSerializer, root: "form_template")
end
def edit
FormTemplate.find(params[:id])
end
def update
template = FormTemplate.find(params[:id])
begin
template.update!(name: params[:name], template: params[:template])
render_serialized(template, AdminFormTemplateSerializer, root: "form_template")
rescue FormTemplate::NotAllowed => err
render_json_error(err.message)
end
end
def destroy
template = FormTemplate.find(params[:id])
template.destroy!
render json: success_json
end
private
def ensure_form_templates_enabled
raise Discourse::InvalidAccess.new unless SiteSetting.experimental_form_templates
end
end