mirror of
https://github.com/manyfold3d/manyfold.git
synced 2026-10-23 04:02:19 -05:00
If we do need to link between models, we will do it with proper relationships.
28 lines
969 B
Ruby
28 lines
969 B
Ruby
module DataPackage
|
|
class ModelDeserializer < BaseDeserializer
|
|
def deserialize
|
|
{
|
|
name: @object["title"],
|
|
caption: @object["caption"],
|
|
notes: @object["description"],
|
|
links_attributes: parse_links,
|
|
preview_file: @object["image"],
|
|
tag_list: @object["keywords"],
|
|
sensitive: @object["sensitive"],
|
|
license: @object.dig("licenses", 0, "name"),
|
|
model_files: @object["resources"]&.map { |it| ModelFileDeserializer.new(it).deserialize },
|
|
creator: CreatorDeserializer.new(@object["contributors"]&.find { |it| it["roles"].include?("creator") }).deserialize,
|
|
collection: CollectionDeserializer.new(@object.dig("collections", 0)).deserialize
|
|
}.compact
|
|
end
|
|
|
|
private
|
|
|
|
def parse_links
|
|
links = (@object["links"] || []).map { |it| LinkDeserializer.new(it).deserialize }
|
|
links << {url: @object["homepage"]} if @object["homepage"]
|
|
links
|
|
end
|
|
end
|
|
end
|