Class: Integrations::Cults3d::ModelDeserializer
- Inherits:
-
BaseDeserializer
- Object
- BaseDeserializer
- BaseDeserializer
- Integrations::Cults3d::ModelDeserializer
- Defined in:
- app/deserializers/integrations/cults3d/model_deserializer.rb
Constant Summary
Constants inherited from BaseDeserializer
BaseDeserializer::PATH_COMPONENTS
Instance Attribute Summary collapse
-
#object_slug ⇒ Object
readonly
Returns the value of attribute object_slug.
Instance Method Summary collapse
Methods inherited from BaseDeserializer
Instance Attribute Details
#object_slug ⇒ Object (readonly)
Returns the value of attribute object_slug.
2 3 4 |
# File 'app/deserializers/integrations/cults3d/model_deserializer.rb', line 2 def object_slug @object_slug end |
Instance Method Details
#capabilities ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'app/deserializers/integrations/cults3d/model_deserializer.rb', line 42 def capabilities { class: Model, name: true, notes: true, images: true, model_files: false, creator: true, tags: true, sensitive: true, license: true } end |
#deserialize ⇒ Object
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 |
# File 'app/deserializers/integrations/cults3d/model_deserializer.rb', line 4 def deserialize return {} unless valid? result = self.class.client.query <<~GRAPHQL { creation(slug: "#{@object_slug}") { name description license { spdxId } safe tags illustrationImageUrl illustrations { imageUrl } creator { nick bio url imageUrl } } } GRAPHQL raise Faraday::ResourceNotFound.new("Not Found") unless result.data&.creation { name: result.data&.creation&.name, slug: @object_slug, notes: result.data&.creation&.description, tag_list: result.data&.creation&..to_a, sensitive: result.data&.creation&.safe == false, file_urls: result.data&.creation&.illustrations&.map { {url: it.image_url.split("()/").last, filename: filename_from_url(it.image_url.split("()/").last)} }, preview_filename: filename_from_url(result.data&.creation&.illustration_image_url), license: result.data&.creation&.license&.spdx_id }.merge(creator_attributes(result&.data&.creation&.creator)) end |