| ZenodoManager {zen4R} | R Documentation |
ZenodoManager
Description
ZenodoManager
ZenodoManager
Format
R6Class object.
Value
Object of R6Class for modelling an ZenodoManager
Super class
zen4R::zen4RLogger -> ZenodoManager
Public fields
sandboxZenodo manager sandbox status,
TRUEif we interact with Sandbox infraanonymousZenodo manager anonymous status,
TRUEwhen no token is specified
Methods
Public methods
Inherited methods
Method new()
initializes the Zenodo Manager
Usage
ZenodoManager$new( url = "https://zenodo.org/api", token = zenodo_pat(), sandbox = FALSE, logger = NULL, keyring_backend = "env" )
Arguments
urlZenodo API URL. By default, the url is set to "https://zenodo.org/api". For tests, the Zenodo sandbox API URL can be used: https://sandbox.zenodo.org/api
tokenthe user token. By default an attempt will be made to retrieve token using zenodo_pat
sandboxIndicates if the Zenodo sandbox platform should be used. Default is
FALSEloggerlogger type. The logger can be either NULL, "INFO" (with minimum logs), or "DEBUG" (for complete curl http calls logs)
keyring_backendThe keyring backend used to store user token. The
keyring_backendcan be set to use a different backend for storing the Zenodo token with keyring (Default value is 'env').
Method getToken()
Get user token
Usage
ZenodoManager$getToken()
Returns
the token, object of class character
Method getLanguages()
Get Languages supported by Zenodo.
Usage
ZenodoManager$getLanguages(pretty = TRUE)
Arguments
prettyPrettify the output. By default the argument
prettyis set toTRUEwhich will returns the list of languages asdata.frame. Setpretty = FALSEto get the raw list of languages
Returns
list of languages as data.frame or list
Method getLanguageById()
Get language by Id.
Usage
ZenodoManager$getLanguageById(id)
Arguments
idlicense id
Returns
the license
Method getLicenses()
Get Licenses supported by Zenodo.
Usage
ZenodoManager$getLicenses(pretty = TRUE)
Arguments
prettyPrettify the output. By default the argument
prettyis set toTRUEwhich will returns the list of licenses asdata.frame. Setpretty = FALSEto get the raw list of licenses.
Returns
list of licenses as data.frame or list
Method getLicenseById()
Get license by Id.
Usage
ZenodoManager$getLicenseById(id)
Arguments
idlicense id
Returns
the license
Method getResourceTypes()
Get Resource types supported by Zenodo.
Usage
ZenodoManager$getResourceTypes(pretty = TRUE)
Arguments
prettyPrettify the output. By default the argument
prettyis set toTRUEwhich will returns the list of resource types asdata.frame. Setpretty = FALSEto get the raw list of resource types
Returns
list of resource types as data.frame or list
Method getResourceTypeById()
Get resource type by Id.
Usage
ZenodoManager$getResourceTypeById(id)
Arguments
idresource type id
Returns
the resource type
Method getCommunities()
Get Communities supported by Zenodo.
Usage
ZenodoManager$getCommunities(pretty = TRUE, q = "", size = 500)
Arguments
prettyPrettify the output. By default the argument
prettyis set toTRUEwhich will returns the list of communities asdata.frame. Setpretty = FALSEto get the raw list of communitiesqan ElasticSearch compliant query, object of class
character. Default is emtpy. Note that the Zenodo API restrains a maximum number of 10,000 records to be retrieved. Consequently, not all communities can be listed from Zenodo, a query has to be specified.sizenumber of communities to be returned. By default equal to 500
Returns
list of communities as data.frame or list
Method getCommunityById()
Get community by Id.
Usage
ZenodoManager$getCommunityById(id)
Arguments
idcommunity id
Returns
the community
Method submitRecordToCommunities()
Submit a published record to one or more community
Usage
ZenodoManager$submitRecordToCommunities( record, communities = list(), message = NULL )
Arguments
recordan object of class ZenodoRecord
communitiescommunities to which the record will be submitted
messagemessage to send to the community curator(s), either a text or a named list for each community in case a community-specific message should be sent
Returns
a submission object of class list, or NULL if nothing was submitted
Method removeRecordFromCommunities()
Remove a record from one or more community
Usage
ZenodoManager$removeRecordFromCommunities(record, communities = list())
Arguments
recordan object of class ZenodoRecord
communitiescommunities to which the record will be submitted
Returns
TRUE if removed, FALSE otherwise
Method getRecordCommunities()
Get record communities
Usage
ZenodoManager$getRecordCommunities(record)
Arguments
recordobject of class
ZenodoRecord
Returns
the list of communities in which the record was included
Method createReviewRequest()
Creates a record review request in a community
Usage
ZenodoManager$createReviewRequest(record, community)
Arguments
recordan object of class ZenodoRecord
communitya community to which the record is submitted for review and publication
Returns
a review request object of class list, or NULL if nothing was submitted
Method getReviewRequest()
Get a record review request
Usage
ZenodoManager$getReviewRequest(record)
Arguments
recordan object of class ZenodoRecord
Returns
a review request object of class list, or NULL if nothing exists
Method deleteReviewRequest()
Deletes a review request
Usage
ZenodoManager$deleteReviewRequest(record)
Arguments
recordan object of class ZenodoRecord
Returns
TRUE if deleted, FALSE otherwise
Method submitRecordForReview()
Submits a record for review. Prior to this submission, a community
has to be selected for a record. This is done by using the method createReviewRequest(record, community).
Usage
ZenodoManager$submitRecordForReview(recordId, message = NULL)
Arguments
recordIdthe ID of a Zenodo record
messagemessage content for the submission. Optional
Returns
TRUE if submitted, FALSE otherwise
Method getGrants()
Get Grants supported by Zenodo. DEPRECATED: replaced by getAwards
Usage
ZenodoManager$getGrants(q = "", pretty = TRUE, size = 500)
Arguments
qan ElasticSearch compliant query, object of class
character. Default is emtpy. Note that the Zenodo API restrains a maximum number of 10,000 records to be retrieved. Consequently, not all grants can be listed from Zenodo, a query has to be specified.prettyPrettify the output. By default the argument
prettyis set toTRUEwhich will returns the list of grants asdata.frame. Setpretty = FALSEto get the raw list of grantssizenumber of grants to be returned. By default equal to 500.
Returns
list of grants as data.frame or list
Method getAwards()
Get Awards supported by Zenodo.
Usage
ZenodoManager$getAwards(q = "", pretty = TRUE, size = 500)
Arguments
qan ElasticSearch compliant query, object of class
character. Default is emtpy. Note that the Zenodo API restrains a maximum number of 10,000 records to be retrieved. Consequently, not all awards can be listed from Zenodo, a query has to be specified.prettyPrettify the output. By default the argument
prettyis set toTRUEwhich will returns the list of awards asdata.frame. Setpretty = FALSEto get the raw list of awardssizenumber of awards to be returned. By default equal to 500.
Returns
list of awards as data.frame or list
Method getGrantsByName()
Get grants by name. DEPRECATED: replaced by getAwardByName
Usage
ZenodoManager$getGrantsByName(name, pretty = TRUE)
Arguments
namename
prettyPrettify the output. By default the argument
prettyis set toTRUEwhich will returns the list of grants asdata.frame. Setpretty = FALSEto get the raw list of grants
Returns
list of grants as data.frame or list
Method getAwardsByName()
Get awards by name.
Usage
ZenodoManager$getAwardsByName(name, pretty = TRUE)
Arguments
namename
prettyPrettify the output. By default the argument
prettyis set toTRUEwhich will returns the list of awards asdata.frame. Setpretty = FALSEto get the raw list of awards
Returns
list of awards as data.frame or list
Method getGrantById()
Get grant by Id.DEPRECATED: replaced by getAwardById
Usage
ZenodoManager$getGrantById(id)
Arguments
idgrant id
Returns
the grant
Method getAwardById()
Get award by Id.
Usage
ZenodoManager$getAwardById(id)
Arguments
idaward id
Returns
the award
Method getAffiliations()
Get Affiliations supported by Zenodo.
Usage
ZenodoManager$getAffiliations(q = "", pretty = TRUE, size = 500)
Arguments
qan ElasticSearch compliant query, object of class
character. Default is emtpy. Note that the Zenodo API restrains a maximum number of 10,000 records to be retrieved. Consequently, not all affiliations can be listed from Zenodo, a query has to be specified.prettyPrettify the output. By default the argument
prettyis set toTRUEwhich will returns the list of affiliations asdata.frame. Setpretty = FALSEto get the raw list of affiliationssizenumber of affiliations to be returned. By default equal to 500.
Returns
list of affiliations as data.frame or list
Method getAffiliationByName()
Get affiliations by name.
Usage
ZenodoManager$getAffiliationByName(name, pretty = TRUE)
Arguments
namename
prettyPrettify the output. By default the argument
prettyis set toTRUEwhich will returns the list of affiliations asdata.frame. Setpretty = FALSEto get the raw list of affiliations
Returns
list of affiliations as data.frame or list
Method getAffiliationById()
Get affiliation by Id.
Usage
ZenodoManager$getAffiliationById(id)
Arguments
idaffiliation id
Returns
the affiliation
Method getFunders()
Get Funders supported by Zenodo based on a query.
Usage
ZenodoManager$getFunders(q = "", pretty = TRUE, size = 500)
Arguments
qan ElasticSearch compliant query, object of class
character. Default is emtpy. Note that the Zenodo API restrains a maximum number of 10,000 records to be retrieved. Consequently, not all funders can be listed from Zenodo, a query has to be specified.prettyPrettify the output. By default the argument
prettyis set toTRUEwhich will returns the list of funders asdata.frame. Setpretty = FALSEto get the raw list of funderssizenumber of funders to be returned. By default equal to 500
Returns
list of funders as data.frame or list
Method getFundersByName()
Get funders by name.
Usage
ZenodoManager$getFundersByName(name, pretty = TRUE)
Arguments
namename
prettyPrettify the output. By default the argument
prettyis set toTRUEwhich will returns the list of funders asdata.frame. Setpretty = FALSEto get the raw list of funders
Returns
list of funders as data.frame or list
Method getFunderById()
Get funder by Id.
Usage
ZenodoManager$getFunderById(id)
Arguments
idfunder id
Returns
the funder
Method getDepositions()
Get the list of Zenodo records deposited in your Zenodo workspace (user records). By default
the list of depositions will be returned by page with a size of 10 results per page (default size of
the Zenodo API). The parameter q allows to specify an ElasticSearch-compliant query to filter
depositions (default query is empty to retrieve all records). The argument all_versions, if set
to TRUE allows to get all versions of records as part of the depositions list. The argument exact
specifies that an exact matching is wished, in which case paginated search will be disabled (only the first
search page will be returned).
Examples of ElasticSearch queries for Zenodo can be found at https://help.zenodo.org/guides/search/.
Usage
ZenodoManager$getDepositions( q = "", size = 10, all_versions = FALSE, exact = TRUE, quiet = FALSE )
Arguments
qElastic-Search-compliant query, as object of class
character. Default is ""sizenumber of depositions to be retrieved per request (paginated). Default is 10
all_versionsobject of class
logicalindicating if all versions of deposits have to be retrieved. Default isFALSEexactobject of class
logicalindicating if exact matching has to be applied. Default isTRUEquietobject of class
logicalindicating if logs have to skipped. Default isFALSE
Returns
a list of ZenodoRecord
Method getDepositionByConceptDOI()
Get a Zenodo deposition record by concept DOI (generic DOI common to all deposition record versions).
Usage
ZenodoManager$getDepositionByConceptDOI(conceptdoi)
Arguments
conceptdoithe concept DOI, object of class
character
Returns
an object of class ZenodoRecord if record does exist, NULL otherwise
Method getDepositionByDOI()
Get a Zenodo deposition record by DOI.
Usage
ZenodoManager$getDepositionByDOI(doi)
Arguments
doithe DOI, object of class
character
Returns
an object of class ZenodoRecord if record does exist, NULL otherwise
Method getDepositionById()
Get a Zenodo deposition record by ID.
Usage
ZenodoManager$getDepositionById(recid)
Arguments
recidthe record ID, object of class
character
Returns
an object of class ZenodoRecord if record does exist, NULL otherwise
Method getDepositionByConceptId()
Get a Zenodo deposition record by concept ID.
Usage
ZenodoManager$getDepositionByConceptId(conceptrecid)
Arguments
conceptrecidthe record concept ID, object of class
character
Returns
an object of class ZenodoRecord if record does exist, NULL otherwise
Method depositRecord()
Deposits a record on Zenodo.
Usage
ZenodoManager$depositRecord(record, reserveDOI = TRUE, publish = FALSE)
Arguments
recordthe record to deposit, object of class
ZenodoRecordreserveDOIreserve DOI. By default
TRUEpublishobject of class
logicalindicating if record has to be published (defaultFALSE). Can be set toTRUE(to use CAUTIOUSLY, only if you want to publish your record)
Returns
object of class ZenodoRecord
Method reserveDOI()
Reserves a DOI for a deposition (draft record)
Usage
ZenodoManager$reserveDOI(record)
Arguments
recordthe record to deposit, object of class
ZenodoRecord
Returns
object of class ZenodoRecord
Method deleteDOI()
Reserves a DOI for a deposition (draft record)
Usage
ZenodoManager$deleteDOI(record)
Arguments
recordthe record for which DOI has to be deleted, object of class
ZenodoRecord
Returns
object of class ZenodoRecord
Method depositRecordVersion()
Deposits a record version on Zenodo.
Usage
ZenodoManager$depositRecordVersion( record, delete_latest_files = TRUE, files = list(), publish = FALSE )
Arguments
recordthe record version to deposit, object of class
ZenodoRecorddelete_latest_filesobject of class
logicalindicating if latest files have to be deleted. Default isTRUEfilesa list of files to be uploaded with the new record version
publishobject of class
logicalindicating if record has to be published (defaultFALSE)
Returns
TRUE if deposited (and eventually published), FALSE otherwise
Method deleteRecord()
Deletes a record given its ID
Usage
ZenodoManager$deleteRecord(recordId)
Arguments
recordIdthe ID of the record to be deleted
Returns
TRUE if deleted, FALSE otherwise
Method deleteRecordByDOI()
Deletes a record by DOI
Usage
ZenodoManager$deleteRecordByDOI(doi)
Arguments
doithe DOI of the record to be deleted
Returns
TRUE if deleted, FALSE otherwise
Method deleteRecords()
Deletes all Zenodo deposited (unpublished) records.
The parameter q allows to specify an ElasticSearch-compliant query to filter depositions (default query
is empty to retrieve all records). Examples of ElasticSearch queries for Zenodo can be found at
https://help.zenodo.org/guides/search/.
Usage
ZenodoManager$deleteRecords(q = "", size = 10)
Arguments
qan ElasticSearch compliant query, object of class
charactersizenumber of records to be passed to
$getDepositionsmethod
Returns
TRUE if all records have been deleted, FALSE otherwise
Method createEmptyRecord()
Creates an empty record in the Zenodo deposit. Returns the record
newly created in Zenodo, as an object of class ZenodoRecord with an
assigned identifier.
Usage
ZenodoManager$createEmptyRecord(reserveDOI = TRUE)
Arguments
reserveDOIreserve DOI. By default
TRUE
Returns
an object of class ZenodoRecord
Method editRecord()
Unlocks a record already submitted. Required to edit metadata of a Zenodo record already published.
Usage
ZenodoManager$editRecord(recordId)
Arguments
recordIdthe ID of the record to unlock and set in editing mode.
Returns
an object of class ZenodoRecord
Method discardChanges()
Discards changes on a Zenodo record. Deleting a draft for an unpublished record will remove the draft and associated files from the system. Deleting a draft for a published record will remove the draft but not the published record.
Usage
ZenodoManager$discardChanges(recordId)
Arguments
recordIdthe ID of the record for which changes have to be discarded.
Returns
an object of class ZenodoRecord
Method publishRecord()
Publishes a Zenodo record.
Usage
ZenodoManager$publishRecord(recordId)
Arguments
recordIdthe ID of the record to be published.
Returns
an object of class ZenodoRecord
Method getFiles()
Get list of files attached to a Zenodo record.
Usage
ZenodoManager$getFiles(recordId)
Arguments
recordIdthe ID of the record.
Returns
list of files
Method getFile()
Get a file record metadata.
Usage
ZenodoManager$getFile(recordId, filename)
Arguments
recordIdthe ID of the record.
filenamefilename
Returns
the file metadata
Method startFileUpload()
Start a file upload. The method will create a key for the file to be uploaded
This method is essentially for internal purpose, and is called directly in uploadFile
for user convenience and for backward compatibility with the legacy Zenodo API.
Usage
ZenodoManager$startFileUpload(path, recordId)
Arguments
pathLocal path of the file
recordIdID of the record
Method completeFileUpload()
Completes a file upload. The method will complete a file upload through a commit operation
This method is essentially for internal purpose, and is called directly in uploadFile
for user convenience and for backward compatibility with the legacy Zenodo API.
Usage
ZenodoManager$completeFileUpload(path, recordId)
Arguments
pathLocal path of the file
recordIdID of the record
Method uploadFile()
Uploads a file to a Zenodo record. With the new Zenodo Invenio RDM API, this method
internally calls startFileUpload to create a file record (with a filename key) at start, followed
by the actual file content upload. At this stage, the file upload is in "pending" status. At the end,
the function calls completeFileUpload to commit the file which status becomes "completed".
Usage
ZenodoManager$uploadFile(path, record = NULL)
Arguments
pathLocal path of the file
recordobject of class
ZenodoRecord
Method deleteFile()
Deletes a file for a record. With the new Zenodo Invenio RDM API, if a file is deleted although its status was pending, only the upload content is deleted, and the file upload record (identified by a filename key) is kept. If the status was completed (with a file commit), the file record is deleted.
Usage
ZenodoManager$deleteFile(recordId, filename)
Arguments
recordIdID of the record
filenamename of the file to be deleted
Method getRecords()
Get the list of Zenodo records. By defaut the list of records will be returned by
page with a size of 10 results per page (default size of the Zenodo API). The parameter
q allows to specify an ElasticSearch-compliant query to filter depositions
(default query is empty to retrieve all records). The argument all_versions,
if set to TRUE allows to get all versions of records as part of the depositions list.
The argument exact specifies that an exact matching is wished, in which case
paginated search will be disabled (only the first search page will be returned).
Examples of ElasticSearch queries for Zenodo can be found at https://help.zenodo.org/guides/search/.
Usage
ZenodoManager$getRecords(q = "", size = 10, all_versions = FALSE, exact = TRUE)
Arguments
qElastic-Search-compliant query, as object of class
character. Default is ""sizenumber of records to be retrieved per request (paginated). Default is 10
all_versionsobject of class
logicalindicating if all versions of records have to be retrieved. Default isFALSEexactobject of class
logicalindicating if exact matching has to be applied. Default isTRUEquietobject of class
logicalindicating if logs have to skipped. Default isFALSE
Returns
a list of ZenodoRecord
Method getRecordByConceptDOI()
Get Record by concept DOI
Usage
ZenodoManager$getRecordByConceptDOI(conceptdoi)
Arguments
conceptdoithe concept DOI
Returns
a object of class ZenodoRecord
Method getRecordByDOI()
Get Record by DOI
Usage
ZenodoManager$getRecordByDOI(doi)
Arguments
doithe DOI
Returns
a object of class ZenodoRecord
Method getRecordById()
Get Record by ID
Usage
ZenodoManager$getRecordById(recid)
Arguments
recidthe record ID
Returns
a object of class ZenodoRecord
Method getRecordByConceptId()
Get Record by concept ID
Usage
ZenodoManager$getRecordByConceptId(conceptrecid)
Arguments
conceptrecidthe concept ID
Returns
a object of class ZenodoRecord
Method getRequests()
Search requests
Usage
ZenodoManager$getRequests(q = "", sort = "bestmatch", size = 10)
Arguments
qSearch query used to filter results based on ElasticSearch's query string syntax. e.g. https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#query-string-syntax
sortSort search results. Built-in options are "bestmatch", "name", "newest", "oldest" (default: "bestmatch" or "newest").
sizenumber of records to be retrieved per request (paginated). Default is 10
Returns
a list of ZenodoRecord
Method getRequest()
Get a request
Usage
ZenodoManager$getRequest(request_id)
Arguments
request_idthe request ID
Returns
the request list object, NULL otherwise
Method isActionableRequest()
Checks if the request can be subject to an operation (accept, decline, cancel) depending on its status. To be subject to an operation, a request should not be closed or expired
Usage
ZenodoManager$isActionableRequest(request_id)
Arguments
request_idthe request ID
Returns
TRUE if
Method acceptRequest()
Accepts a request
Usage
ZenodoManager$acceptRequest(request_id, message = NULL)
Arguments
request_idthe request ID
messageoptional message reason for acceptance
Returns
TRUE if accepted, FALSE otherwise
Method declineRequest()
Declines a request
Usage
ZenodoManager$declineRequest(request_id, message = NULL)
Arguments
request_idthe request ID
messageoptional message reason for declination
Returns
TRUE if declined, FALSE otherwise
Method cancelRequest()
Cancels a request
Usage
ZenodoManager$cancelRequest(request_id, message = NULL)
Arguments
request_idthe request ID
messageoptional message reason for cancelation
Returns
TRUE if canceled, FALSE otherwise
Method clone()
The objects of this class are cloneable with this method.
Usage
ZenodoManager$clone(deep = FALSE)
Arguments
deepWhether to make a deep clone.
Note
Main user class to be used with zen4R
Author(s)
Emmanuel Blondel <emmanuel.blondel1@gmail.com>
Examples
## Not run:
ZENODO <- ZenodoManager$new(
url = "https://sandbox.zenodo.org/api",
token = "<your_token>",
logger = "INFO"
)
#create (deposit) an empty record
newRec <- ZENODO$createEmptyRecord()
#create and fill a local (not yet deposited) record
myrec <- ZenodoRecord$new()
myrec$setTitle("my R package")
myrec$setDescription("A description of my R package")
myrec$setUploadType("software")
myrec$addCreator(
firstname = "John", lastname = "Doe",
affiliation = "Independent", orcid = "0000-0000-0000-0000"
)
myrec$setLicense("mit")
myrec$setAccessRight("open")
myrec$setDOI("mydoi") #use this method if your DOI has been assigned elsewhere, outside Zenodo
#deposit the record
myrec <- ZENODO$depositRecord(myrec)
#publish a record (with caution!!)
#this method will PUBLISH the deposition done earlier
ZENODO$publishRecord(myrec$id)
#With even more caution the publication can be done with a shortcut argument at deposit time
ZENODO$depositRecord(myrec, publish = TRUE)
#delete a record (by id)
#this methods only works for unpublished deposits
#(if a record is published, it cannot be deleted anymore!)
ZENODO$deleteRecord(myrec$id)
#HOW TO UPLOAD FILES to a deposit
#upload a file
ZENODO$uploadFile("path/to/your/file", record = myrec)
#list files
zen_files <- ZENODO$getFiles(myrec$id)
#delete a file?
ZENODO$deleteFile(myrec$id, zen_files[[1]]$filename)
## End(Not run)