Editor: Allow file retrieval after code run
This commit is contained in:

committed by
Sebastian Serth

parent
fb9672c7a4
commit
60078701f5
35
app/controllers/concerns/file_conversion.rb
Normal file
35
app/controllers/concerns/file_conversion.rb
Normal file
@@ -0,0 +1,35 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module FileConversion
|
||||
private
|
||||
|
||||
def convert_files_json_to_files(files_json)
|
||||
all_file_types = FileType.all
|
||||
directories = []
|
||||
files = files_json['files'].filter_map do |file|
|
||||
# entryType: `-` describes a regular file, `d` a directory. See `info ls` for others
|
||||
directories.push(file['name']) if file['entryType'] == 'd'
|
||||
next unless file['entryType'] == '-'
|
||||
|
||||
extension = File.extname(file['name'])
|
||||
name = File.basename(file['name'], extension)
|
||||
path = File.dirname(file['name']).sub(%r{^(?>\./|\.)}, '').presence
|
||||
file_type = all_file_types.detect {|ft| ft.file_extension == extension } || FileType.new(file_extension: extension)
|
||||
CodeOcean::File.new(
|
||||
name: name,
|
||||
path: path,
|
||||
size: file['size'],
|
||||
owner: file['owner'],
|
||||
group: file['group'],
|
||||
permissions: file['permissions'],
|
||||
updated_at: file['modificationTime'],
|
||||
file_type: file_type
|
||||
)
|
||||
end
|
||||
[augment_files_for_download(files), directories]
|
||||
end
|
||||
|
||||
def augment_files_for_download(files)
|
||||
raise NotImplementedError
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user