lib/bolognese/readers/datacite_reader.rb in bolognese-0.13.4 vs lib/bolognese/readers/datacite_reader.rb in bolognese-0.13.6
- old
+ new
@@ -6,13 +6,12 @@
def get_datacite(id: nil, **options)
return { "string" => nil, "state" => "not_found" } unless id.present?
search_url = doi_search(id, options)
doi = doi_from_url(id)
- params = { q: doi,
+ params = { q: "doi:#{doi}",
fl: "doi,url,xml,state,allocator_symbol,datacentre_symbol,media,minted,updated",
- defType: "edismax",
wt: "json" }
search_url += "?" + URI.encode_www_form(params)
response = Maremma.get search_url
attributes = response.body.dig("data", "response", "docs").first
@@ -161,10 +160,10 @@
dd = dates.find { |d| d["dateType"] == date_type } || {}
dd.fetch("__content__", nil)
end
def datacite_funding_reference(meta)
- Array.wrap(meta.dig("fundingReferences", "fundingReference")).map do |f|
+ Array.wrap(meta.dig("fundingReferences", "fundingReference")).compact.map do |f|
funder_id = parse_attributes(f["funderIdentifier"])
funder = { "type" => "Organization",
"id" => normalize_id(funder_id),
"name" => f["funderName"] }.compact
if f["awardNumber"].present? || f["awardTitle"].present?