LibreCat/LibreCat

View on GitHub
fixes/datacite_mapping.fix

Summary

Maintainability
Test Coverage
# fix file
# import data from http://data.datacite.org

# map mandatory fields
if any_match(resourceType.content, '(?i)article')
  add_field(r.type, journal_article)
else
  add_field(r.type, research_data)
end

move_field(identifier.content, r.doi)

move_field(publicationYear, r.year)

if is_array(titles.title)
  join_field(titles.title, ' - ')
end
move_field(titles.title, r.title)

add_field(r.status, new)

move_field(language, r.language.0.iso)

if exists(creators.creator.creatorName)
  move_field(creators.creator.creatorName, r.author.$append)
else
  move_field(creators.creator.*.creatorName, r.author.$append)
end

do list(path:descriptions.description, var:loop)
  if any_match(loop.descriptionType, '(?i)abstract')
    move_field(loop.content, r.abstract.$append.text)
    add_field(r.abstract.$append.lang, eng)
  end
end

retain_field(r)
move_field(r, .)

split_author()
vacuum()