diff --git a/R/ZenodoManager.R b/R/ZenodoManager.R index b0f78b3..d929a19 100644 --- a/R/ZenodoManager.R +++ b/R/ZenodoManager.R @@ -1023,7 +1023,7 @@ ZenodoManager <- R6Class("ZenodoManager", result <- self$getDepositions(q = query, all_versions = TRUE, exact = TRUE) if(length(result)>0){ result <- result[[1]] - if(result$pids$doi$identifier == doi){ + if(result$getDOI() == doi){ infoMsg = sprintf("Successfully fetched record for DOI '%s'!",doi) cli::cli_alert_success(infoMsg) self$INFO(infoMsg) @@ -1467,8 +1467,9 @@ ZenodoManager <- R6Class("ZenodoManager", logger = self$loggerType) zenReq$execute() out <- NULL - if(zenReq$getStatus() == 201){ - out <- ZenodoRecord$new(obj = zenReq$getResponse()) + if(zenReq$getStatus() == 200){ + resp <- zenReq$getResponse() + out <- resp$entries infoMsg = sprintf("Successful fetched file(s) for record '%s'", recordId) cli::cli_alert_success(infoMsg) self$INFO(infoMsg) diff --git a/R/ZenodoRecord.R b/R/ZenodoRecord.R index 0660895..2e874c6 100644 --- a/R/ZenodoRecord.R +++ b/R/ZenodoRecord.R @@ -66,11 +66,21 @@ ZenodoRecord <- R6Class("ZenodoRecord", }) self$id = obj$id self$metadata = obj$metadata + #special metadata treatments resource_type = self$metadata$resource_type if(!is.null(resource_type)){ resource_type_id = resource_type$id self$metadata$resource_type = list(id = resource_type_id) } + self$metadata$related_identifiers = lapply(self$metadata$related_identifiers, function(identifier){ + #map DataCite term to zenodo lowercase term + #TODO investigate this is needed + id = identifier + if(is.null(identifier$relation_type) && !is.null(identifier$relation)){ + id$relation_type = list(id = tolower(identifier$relation)) + } + return(id) + }) self$pids = obj$pids self$parent = obj$parent diff --git a/R/ZenodoRequest.R b/R/ZenodoRequest.R index 0f36650..6c5ce00 100644 --- a/R/ZenodoRequest.R +++ b/R/ZenodoRequest.R @@ -26,6 +26,7 @@ ZenodoRequest <- R6Class("ZenodoRequest", exception = NA, result = NA, token = NULL, + accept = "application/vnd.inveniordm.v1+json", agent = paste0("zen4R_", as(packageVersion("zen4R"),"character")), prepareData = function(data){ @@ -224,6 +225,7 @@ ZenodoRequest <- R6Class("ZenodoRequest", private$file = file private$progress = progress private$token = token + private$accept = accept },