Class: Ecoportal::API::GraphQL::Base::Page::DataField::FileField

Inherits:
DataField
  • Object
show all
Defined in:
lib/ecoportal/api/graphql/base/page/data_field/file_field.rb

Overview

File attachment field. Writing requires a prior file upload to the REST upload endpoint to obtain fileContainerIds — see the file-upload TODO in projects/TODO.md. The file_container_ids= setter can be used once IDs are available.

Instance Method Summary collapse

Instance Method Details

#as_inputObject



18
19
20
21
22
# File 'lib/ecoportal/api/graphql/base/page/data_field/file_field.rb', line 18

def as_input
  return nil unless dirty?

  { file: { id: id, fileContainerIds: file_container_ids } }
end

#file_container_idsObject



10
11
12
# File 'lib/ecoportal/api/graphql/base/page/data_field/file_field.rb', line 10

def file_container_ids
  Array(fileContainers).map { |c| c.is_a?(Hash) ? c['id'] : c }.compact
end

#file_container_ids=(ids) ⇒ Object



14
15
16
# File 'lib/ecoportal/api/graphql/base/page/data_field/file_field.rb', line 14

def file_container_ids=(ids)
  doc['fileContainers'] = Array(ids).map { |id_val| { 'id' => id_val } }
end