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
temp_path = Rails.root.join('tmp', 'uploads', file.original_filename)
FileUtils.mkdir_p(File.dirname(temp_path))
File.binwrite(temp_path, file.read)
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
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
|