Module: Zenodo::DSL::DepositionFiles

Included in:
Zenodo::DSL
Defined in:
lib/zenodo/dsl/deposition_files.rb

Instance Method Summary collapse

Instance Method Details

#create_deposition_file(id:, file:, filename: '') ⇒ Zenodo::Resources::DepositionFile

Create (upload) POST deposit/depositions/:id/files Upload a new file. Note the upload will fail if the filename already exists.

Raises:

  • (ArgumentError)

    If the method arguments are blank.



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/zenodo/dsl/deposition_files.rb', line 23

def create_deposition_file(id:, file:, filename: '')
  raise ArgumentError, "ID cannot be blank" if id.blank?
  raise ArgumentError, "File cannot be blank" if file.blank?
  content_type = MIME::Types.type_for(file).first.content_type
  io = Faraday::UploadIO.new(file, content_type)
  filename = File.basename(file) if filename.blank?
  Resources::DepositionFile.parse(
    request(:post, "deposit/depositions/#{id}/files", { name: filename, file: io },
      "Content-Type" => "multipart/form-data")
  )
end

#delete_deposition_file(id:, file_id:) ⇒ Faraday::Response

Delete DELETE deposit/depositions/:id/files/:file_id Delete an existing deposition file resource. Note, only deposition files for unpublished depositions may be deleted.

Raises:

  • (ArgumentError)

    If the method arguments are blank.



81
82
83
84
85
# File 'lib/zenodo/dsl/deposition_files.rb', line 81

def delete_deposition_file(id:, file_id:)
  raise ArgumentError, "ID cannot be blank" if id.blank?
  raise ArgumentError, "File ID cannot be blank" if file_id.blank?
  request(:delete, "deposit/depositions/#{id}/files/#{file_id}", nil, nil)
end

#get_deposition_file(id:, file_id:) ⇒ Zenodo::Resources::DepositionFile

Retrieve GET deposit/depositions/:id/files/:file_id Retrieve a single deposition file.

Raises:

  • (ArgumentError)

    If the method arguments are blank.



53
54
55
56
57
# File 'lib/zenodo/dsl/deposition_files.rb', line 53

def get_deposition_file(id:, file_id:)
  raise ArgumentError, "ID cannot be blank" if id.blank?
  raise ArgumentError, "File ID cannot be blank" if file_id.blank?
  Resources::DepositionFile.parse(request(:get, "deposit/depositions/#{id}/files/#{file_id}", nil))
end

#get_deposition_files(id:) ⇒ Array?

List GET deposit/depositions/:id/files List all deposition files for a given deposition.

Raises:

  • (ArgumentError)

    If the method arguments are blank.



10
11
12
13
# File 'lib/zenodo/dsl/deposition_files.rb', line 10

def get_deposition_files(id:)
  raise ArgumentError, "ID cannot be blank" if id.blank?
  Resources::DepositionFile.parse(request(:get, "deposit/depositions/#{id}/files", nil))
end

#sort_deposition_files(id:, deposition_files:) ⇒ Array?

Sort PUT deposit/depositions/:id/files Sort the files for a deposition. By default, the first file is shown in the file preview.

Raises:

  • (ArgumentError)

    If the method arguments are blank.



41
42
43
44
45
# File 'lib/zenodo/dsl/deposition_files.rb', line 41

def sort_deposition_files(id:, deposition_files:)
  raise ArgumentError, "ID cannot be blank" if id.blank?
  raise ArgumentError, "Deposition files cannot be blank" if deposition_files.blank?
  Resources::DepositionFile.parse(request(:put, "deposit/depositions/#{id}/files", deposition_files))
end

#update_deposition_file(id:, file_id:, deposition_file:) ⇒ Zenodo::Resources::DepositionFile

Update PUT deposit/depositions/:id/files/:file_id Update a deposition file resource. Currently the only use is renaming an already uploaded file. If you one to replace the actual file, please delete the file and upload a new file.

Raises:

  • (ArgumentError)

    If the method arguments are blank.



67
68
69
70
71
72
# File 'lib/zenodo/dsl/deposition_files.rb', line 67

def update_deposition_file(id:, file_id:, deposition_file:)
  raise ArgumentError, "ID cannot be blank" if id.blank?
  raise ArgumentError, "File ID cannot be blank" if file_id.blank?
  raise ArgumentError, "Deposition file cannot be blank" if deposition_file.blank?
  Resources::DepositionFile.parse(request(:put, "deposit/depositions/#{id}/files/#{file_id}", deposition_file))
end