Class: Dor::Services::Client::Object

Inherits:
VersionedService show all
Extended by:
Deprecation
Defined in:
lib/dor/services/client/object.rb

Overview

API calls that are about a repository object

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

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

Returns a new instance of Object.

Parameters:

  • object_identifier (String)

    the pid for the object

Raises:

  • (ArgumentError)


15
16
17
18
19
20
# File 'lib/dor/services/client/object.rb', line 15

def initialize(connection:, version:, object_identifier:)
  raise ArgumentError, "The `object_identifier` parameter must be an identifier string: #{object_identifier.inspect}" unless object_identifier.is_a?(String)

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

Instance Attribute Details

#object_identifierObject (readonly)

Returns the value of attribute object_identifier.



12
13
14
# File 'lib/dor/services/client/object.rb', line 12

def object_identifier
  @object_identifier
end

Instance Method Details

#close_version(**params) ⇒ Object



112
113
114
# File 'lib/dor/services/client/object.rb', line 112

def close_version(**params)
  version.close(**params)
end

#current_versionObject



102
103
104
# File 'lib/dor/services/client/object.rb', line 102

def current_version
  version.current
end

#filesObject



30
31
32
# File 'lib/dor/services/client/object.rb', line 30

def files
  @files ||= Files.new(connection: connection, version: api_version, object_identifier: object_identifier)
end

#metadataObject



26
27
28
# File 'lib/dor/services/client/object.rb', line 26

def 
  @metadata ||= Metadata.new(connection: connection, version: api_version, object_identifier: object_identifier)
end

#notify_goobiboolean

Notify the external Goobi system for a new object that was registered in DOR

Returns:

  • (boolean)

    true on success

Raises:



93
94
95
96
97
98
99
100
# File 'lib/dor/services/client/object.rb', line 93

def notify_goobi
  resp = connection.post do |req|
    req.url "#{object_path}/notify_goobi"
  end
  return true if resp.success?

  raise_exception_based_on_response!(resp)
end

#open_new_version(**params) ⇒ Object



107
108
109
# File 'lib/dor/services/client/object.rb', line 107

def open_new_version(**params)
  version.open(**params)
end

#publishboolean

Publish a new object

Returns:

  • (boolean)

    true on success

Raises:



54
55
56
57
58
59
60
61
# File 'lib/dor/services/client/object.rb', line 54

def publish
  resp = connection.post do |req|
    req.url "#{object_path}/publish"
  end
  return true if resp.success?

  raise_exception_based_on_response!(resp)
end

#refresh_metadataboolean

Pull in metadata from Symphony and update descMetadata

Returns:

  • (boolean)

    true on success

Raises:



80
81
82
83
84
85
86
87
# File 'lib/dor/services/client/object.rb', line 80

def 
  resp = connection.post do |req|
    req.url "#{object_path}/refresh_metadata"
  end
  return true if resp.success?

  raise_exception_based_on_response!(resp)
end

#release_tagsObject



42
43
44
# File 'lib/dor/services/client/object.rb', line 42

def release_tags
  @release_tags ||= ReleaseTags.new(connection: connection, version: api_version, object_identifier: object_identifier)
end

#sdrObject



22
23
24
# File 'lib/dor/services/client/object.rb', line 22

def sdr
  @sdr ||= SDR.new(connection: connection, version: api_version, object_identifier: object_identifier)
end

#update_marc_recordboolean

Update the marc record for the give object

Returns:

  • (boolean)

    true on success

Raises:



67
68
69
70
71
72
73
74
# File 'lib/dor/services/client/object.rb', line 67

def update_marc_record
  resp = connection.post do |req|
    req.url "#{object_path}/update_marc_record"
  end
  return true if resp.success?

  raise_exception_based_on_response!(resp)
end

#versionObject



46
47
48
# File 'lib/dor/services/client/object.rb', line 46

def version
  @version ||= ObjectVersion.new(connection: connection, version: api_version, object_identifier: object_identifier)
end

#workflowObject



34
35
36
# File 'lib/dor/services/client/object.rb', line 34

def workflow
  @workflow ||= Workflow.new(connection: connection, version: api_version, object_identifier: object_identifier)
end

#workspaceObject



38
39
40
# File 'lib/dor/services/client/object.rb', line 38

def workspace
  @workspace ||= Workspace.new(connection: connection, version: api_version, object_identifier: object_identifier)
end