Module: Zenodo::DSL::DepositionFiles
- Included in:
- Zenodo::DSL
- Defined in:
- lib/zenodo/dsl/deposition_files.rb
Instance Method Summary collapse
-
#create_deposition_file(id:, file:, filename: '') ⇒ Zenodo::Resources::DepositionFile
Create (upload) POST deposit/depositions/:id/files Upload a new file.
-
#delete_deposition_file(id:, file_id:) ⇒ Faraday::Response
Delete DELETE deposit/depositions/:id/files/:file_id Delete an existing deposition file resource.
-
#get_deposition_file(id:, file_id:) ⇒ Zenodo::Resources::DepositionFile
Retrieve GET deposit/depositions/:id/files/:file_id Retrieve a single deposition file.
-
#get_deposition_files(id:) ⇒ Array?
List GET deposit/depositions/:id/files List all deposition files for a given deposition.
-
#sort_deposition_files(id:, deposition_files:) ⇒ Array?
Sort PUT deposit/depositions/:id/files Sort the files for a deposition.
-
#update_deposition_file(id:, file_id:, deposition_file:) ⇒ Zenodo::Resources::DepositionFile
Update PUT deposit/depositions/:id/files/:file_id Update a deposition file resource.
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.
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.
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.
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.
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.
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.
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 |