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
 |