Class: Dor::Services::Client::Files

Inherits:
VersionedService show all
Defined in:
lib/dor/services/client/files.rb

Overview

API calls relating to files

Instance Method Summary collapse

Constructor Details

#initialize(connection:, version:, object_identifier:) ⇒ Files

Returns a new instance of Files.

Parameters:

  • object_identifier (String)

    the pid for the object



9
10
11
12
# File 'lib/dor/services/client/files.rb', line 9

def initialize(connection:, version:, object_identifier:)
  super(connection: connection, version: version)
  @object_identifier = object_identifier
end

Instance Method Details

#listArray<String>

Get the list of files in the workspace

Returns:

  • (Array<String>)

    the list of filenames in the workspace



41
42
43
44
45
46
47
48
49
# File 'lib/dor/services/client/files.rb', line 41

def list
  resp = connection.get do |req|
    req.url "#{api_version}/objects/#{object_identifier}/contents"
  end
  return [] unless resp.success?

  json = JSON.parse(resp.body)
  json['items'].map { |item| item['name'] }
end

#preserved_content(filename:, version:) ⇒ String

Get the preserved file contents

Parameters:

  • filename (String)

    the name of the file to retrieve

  • version (Integer)

    the version of the file to retrieve

Returns:

  • (String)

    the file contents from the SDR



30
31
32
33
34
35
36
37
# File 'lib/dor/services/client/files.rb', line 30

def preserved_content(filename:, version:)
  resp = connection.get do |req|
    req.url "#{api_version}/sdr/objects/#{object_identifier}/content/#{CGI.escape(filename)}?version=#{version}"
  end
  return unless resp.success?

  resp.body
end

#retrieve(filename:) ⇒ String

Get the contents from the workspace

Parameters:

  • filename (String)

    the name of the file to retrieve

Returns:

  • (String)

    the file contents from the workspace



17
18
19
20
21
22
23
24
# File 'lib/dor/services/client/files.rb', line 17

def retrieve(filename:)
  resp = connection.get do |req|
    req.url "#{api_version}/objects/#{object_identifier}/contents/#{filename}"
  end
  return unless resp.success?

  resp.body
end