Class: Integrations::Thangs::ModelDeserializer
- Inherits:
-
BaseDeserializer
- Object
- BaseDeserializer
- BaseDeserializer
- Integrations::Thangs::ModelDeserializer
- Defined in:
- app/deserializers/integrations/thangs/model_deserializer.rb
Constant Summary
Constants inherited from BaseDeserializer
BaseDeserializer::PATH_COMPONENTS, 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/thangs/model_deserializer.rb', line 2 def model_id @model_id end |
Instance Method Details
#capabilities ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'app/deserializers/integrations/thangs/model_deserializer.rb', line 17 def capabilities { class: Model, name: true, notes: true, images: true, model_files: false, creator: true, tags: false, sensitive: false, license: false } end |
#deserialize ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'app/deserializers/integrations/thangs/model_deserializer.rb', line 4 def deserialize return {} unless valid? r = fetch "models/#{CGI.escapeURIComponent(@model_id)}" files = r.body.dig("attachments").filter_map { {url: it.dig("imageUrl"), filename: filename_from_url(it.dig("imageUrl"))} if it.dig("attachmentType") == "image" } { name: r.body["name"], slug: @model_slug.parameterize, notes: r.body["description"], file_urls: files, preview_filename: files.first&.dig(:filename) }.merge(creator_attributes(r.body["owner"])) end |