Class: Integrations::Thingiverse::ModelDeserializer
- Inherits:
-
BaseDeserializer
- Object
- BaseDeserializer
- BaseDeserializer
- Integrations::Thingiverse::ModelDeserializer
- Defined in:
- app/deserializers/integrations/thingiverse/model_deserializer.rb
Constant Summary
Constants inherited from BaseDeserializer
BaseDeserializer::USERNAME_PATTERN
Instance Attribute Summary collapse
-
#model_id ⇒ Object
readonly
Returns the value of attribute model_id.
Instance Method Summary collapse
Instance Attribute Details
#model_id ⇒ Object (readonly)
Returns the value of attribute model_id.
2 3 4 |
# File 'app/deserializers/integrations/thingiverse/model_deserializer.rb', line 2 def model_id @model_id end |
Instance Method Details
#capabilities ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'app/deserializers/integrations/thingiverse/model_deserializer.rb', line 20 def capabilities { class: Model, name: true, notes: true, images: true, model_files: true, creator: true, tags: true, sensitive: true, license: false } end |
#deserialize ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'app/deserializers/integrations/thingiverse/model_deserializer.rb', line 4 def deserialize return {} unless valid? r = fetch "things/#{CGI.escapeURIComponent(@model_id)}" { name: r.body["name"], slug: r.body["name"].parameterize, notes: r.body["description"], tag_list: r.body["tags"]&.pluck("tag"), sensitive: r.body["is_nsfw"], file_urls: r.body.dig("zip_data", "images").map { {url: it.dig("url"), filename: "images/" + it.dig("name")} } + r.body.dig("zip_data", "files").map { {url: it.dig("url"), filename: "files/" + it.dig("name")} }, preview_filename: "images/" + r.body.dig("default_image", "name") }.merge(creator_attributes(r.body["creator"])) end |