Spaces:
Build error
Build error
File size: 1,264 Bytes
def1299 |
1 2 3 4 5 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 |
class SubmissionSerializer < ActiveModel::Serializer
attributes((Submission.column_names + ["status", "language"] - ["id"]).collect(&:to_sym))
def self.default_fields
@@default_fields ||= [
:token,
:time,
:memory,
:stdout,
:stderr,
:compile_output,
:message,
:status
]
end
def source_code
object_decoder(:source_code)
end
def stdin
object_decoder(:stdin)
end
def expected_output
object_decoder(:expected_output)
end
def stdout
object_decoder(:stdout)
end
def stderr
object_decoder(:stderr)
end
def compile_output
object_decoder(:compile_output)
end
def message
if instance_options[:base64_encoded] and object.message
return Base64Service.encode(object.message)
end
object.message
end
def status
{ id: object.status_id, description: object.status.name }
end
def language
ActiveModelSerializers::SerializableResource.new(object.language, { serializer: LanguageSerializer, fields: [:id, :name] })
end
def additional_files
Base64Service.encode(object.additional_files)
end
private
def object_decoder(method)
instance_options[:base64_encoded] ? object[method] : object.send(method)
end
end
|