dm_api client

Adding to Gemfile

Local - development

Add gem "dm_api", path: "/home/user/clones/dm_api" to your Gemfile and run bundle install

Git

bundle add dm_api --git [email protected]:vm/dm_api.git

Usage

Configuration

DmApi::Configuration.instance.api_key = File.read(Rails.root.join('config', 'dm_api.key')).chomp
DmApi::Configuration.instance.proxy = 'http://localhost:8080'
DmApi::Configuration.instance.ssl_verify = false

Create (empty) document

container_id = '7b1d9be9-e329-45b2-860b-c54462f14312'
dm_doc = DmApi::Resource::Document.create(
  body: {
    title: 'document_title',
    container: { data: {
      id: container_id,
      type: 'binder'
    } }
  }
)

Upload file data

filename = Rails.root.join('example.pdf').to_s
file_uuid, upload_response = DmApi::Resource::File.upload(filename)

file_uuid = '54b49b1f-084e-4e2d-948c-7222f450821a'

Attach file to document

    file_data = [ { data: { id: file_uuid, type: 'file' } } ]
    response = DmApi::Resource::Document.add_file(dm_doc.id, body: file_data)

Display list of info fields

DmApi::Resource::Document.find(dm_doc.id).information.map { |info| info.label }

DmApi::Resource::Document.find(dm_doc.id).information.each do |info|
  case info.label
  when 'DUZP'
    date = Date.today
    DmApi::Resource::Information.update(info.id, body: { value: { data: date.to_time } })
  when 'DPH'
    value = { number: 123.45, unit: 'CZK' }
    DmApi::Resource::Information.update(info.id, body: { value: { data: value } })
  end
end