mirror of https://github.com/docusealco/docuseal
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
834 B
29 lines
834 B
# frozen_string_literal: true
|
|
|
|
module Api
|
|
class AttachmentsController < ApiBaseController
|
|
skip_before_action :authenticate_user!
|
|
|
|
def create
|
|
submitter = Submitter.find_by!(slug: params[:submitter_slug])
|
|
|
|
blob =
|
|
if (file = params[:file])
|
|
ActiveStorage::Blob.create_and_upload!(io: file.open,
|
|
filename: file.original_filename,
|
|
content_type: file.content_type)
|
|
else
|
|
ActiveStorage::Blob.find_signed(params[:blob_signed_id])
|
|
end
|
|
|
|
attachment = ActiveStorage::Attachment.create!(
|
|
blob:,
|
|
name: params[:name],
|
|
record: submitter
|
|
)
|
|
|
|
render json: attachment.as_json(only: %i[uuid], methods: %i[url filename content_type])
|
|
end
|
|
end
|
|
end
|