|
- # frozen_string_literal: true
-
-
- module MaterialRepr
- BASE = { only: [:id, :url, :created_at, :updated_at],
- methods: [:content_type],
- include: { tag: TagRepr::BASE,
- created_by_user: UserRepr::BASE,
- updated_by_user: UserRepr::BASE } }.freeze
-
- module_function
-
- def base material, host:
- material.as_json(BASE).merge(
- file: if material.file.attached?
- Rails.application.routes.url_helpers.rails_storage_proxy_url(
- material.file, host:)
- end)
- end
-
- def many materials, host:
- materials.map { |m| base(m, host) }
- end
- end
|