Class: Ragdoll::DocumentsControllerBackup

Inherits:
ApplicationController show all
Defined in:
app/controllers/ragdoll/documents_controller_backup.rb

Instance Method Summary collapse

Instance Method Details

#upload_simpleObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'app/controllers/ragdoll/documents_controller_backup.rb', line 6

def upload_simple
  Rails.logger.info "upload_simple called with params: #{params.inspect}"
  
  if params[:ragdoll_document] && params[:ragdoll_document][:files].present?
    uploaded_files = params[:ragdoll_document][:files]
    uploaded_files = [uploaded_files] unless uploaded_files.is_a?(Array)
    
    results = []
    uploaded_files.each_with_index do |file, index|
      next unless file.respond_to?(:original_filename)
      
      begin
        # Save uploaded file temporarily
        temp_path = Rails.root.join('tmp', 'uploads', file.original_filename)
        FileUtils.mkdir_p(File.dirname(temp_path))
        File.binwrite(temp_path, file.read)
        
        # Process document directly (synchronously)
        result = ::Ragdoll.add_document(path: temp_path.to_s)
        
        if result[:success] && result[:document_id]
          document = ::Ragdoll::Document.find(result[:document_id])
          results << { 
            file: file.original_filename, 
            success: true, 
            document_id: document.id,
            message: 'Document processed successfully'
          }
        else
          results << { 
            file: file.original_filename, 
            success: false, 
            error: result[:error] || 'Unknown error'
          }
        end
        
        # Clean up temp file
        File.delete(temp_path) if File.exist?(temp_path)
      rescue => e
        Rails.logger.error "Error processing file #{file.original_filename}: #{e.message}"
        results << { 
          file: file.original_filename, 
          success: false, 
          error: e.message
        }
      end
    end
    
    render json: { 
      success: true, 
      results: results,
      message: "Processed #{results.count} file(s)" 
    }
  else
    render json: { success: false, error: "No files provided" }, status: :bad_request
  end
rescue => e
  Rails.logger.error "Error in upload_simple: #{e.message}"
  Rails.logger.error e.backtrace.join("\n")
  render json: { success: false, error: e.message }, status: :internal_server_error
end