Files
docuseal/app/controllers/api/templates_clone_controller.rb
T

36 lines
904 B
Ruby
Raw Normal View History

2023-12-06 11:29:55 +02:00
# frozen_string_literal: true
module Api
class TemplatesCloneController < ApiBaseController
load_and_authorize_resource :template
def create
authorize!(:manage, @template)
2024-02-01 00:34:35 +02:00
cloned_template = Templates::Clone.call(
@template,
author: current_user,
name: params[:name],
external_id: params[:external_id].presence || params[:application_key],
folder_name: params[:folder_name]
)
2023-12-06 11:29:55 +02:00
2023-12-18 13:38:01 +02:00
cloned_template.source = :api
cloned_template.save!
2023-12-06 11:29:55 +02:00
2023-12-18 13:38:01 +02:00
Templates::CloneAttachments.call(template: cloned_template, original_template: @template)
2023-12-06 11:29:55 +02:00
2023-12-18 13:38:01 +02:00
render json: cloned_template.as_json(serialize_params)
2023-12-06 11:29:55 +02:00
end
private
def serialize_params
{
include: { author: { only: %i[id email first_name last_name] },
documents: { only: %i[id uuid], methods: %i[url filename] } }
}
end
end
end