lib/bolognese/datacite_utils.rb in bolognese-0.9.76 vs lib/bolognese/datacite_utils.rb in bolognese-0.9.77
- old
+ new
@@ -157,23 +157,34 @@
xml.version(version)
end
def rel_identifier
Array.wrap(related_identifier).map do |r|
- { "__content__" => r["id"] || r["issn"],
- "related_identifier_type" => r["issn"].present? ? "ISSN" : validate_url(r["id"]),
- "relation_type" => r["relationType"] }.compact
+ related_identifier_type = r["issn"].present? ? "ISSN" : validate_url(r["id"])
+ if related_identifier_type == "ISSN"
+ content = r["issn"]
+ elsif related_identifier_type == "DOI"
+ content = doi_from_url(r["id"])
+ else
+ content = r["id"]
+ end
+
+ { "__content__" => content,
+ "related_identifier_type" => related_identifier_type,
+ "relation_type" => r["relationType"],
+ "resource_type_general" => r["resourceTypeGeneral"] }.compact
end
end
def insert_related_identifiers(xml)
return xml unless rel_identifier.present?
xml.relatedIdentifiers do
rel_identifier.each do |related_identifier|
attributes = {
'relatedIdentifierType' => related_identifier["related_identifier_type"],
- 'relationType' => related_identifier["relation_type"] }.compact
+ 'relationType' => related_identifier["relation_type"],
+ 'resourceTypeGeneral' => related_identifier["resource_type_general"] }.compact
xml.relatedIdentifier(related_identifier["__content__"], attributes)
end
end
end