X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/a6fb1ead5b9dc773813526c2d3e3beea0daebe17..413baecf6b27056cb73e6bb4bedb33de6410c65e:/lib/object_metadata.rb diff --git a/lib/object_metadata.rb b/lib/object_metadata.rb new file mode 100644 index 000000000..d4d0bcfc7 --- /dev/null +++ b/lib/object_metadata.rb @@ -0,0 +1,30 @@ +module ObjectMetadata + def add_metadata_to_xml_node(el, osm, changeset_cache, user_display_name_cache) + el['changeset'] = osm.changeset_id.to_s + el['redacted'] = osm.redaction.id.to_s if osm.redacted? + el['timestamp'] = osm.timestamp.xmlschema + el['version'] = osm.version.to_s + el['visible'] = osm.visible.to_s + + if changeset_cache.key?(osm.changeset_id) + # use the cache if available + else + changeset_cache[osm.changeset_id] = osm.changeset.user_id + end + + user_id = changeset_cache[osm.changeset_id] + + if user_display_name_cache.key?(user_id) + # use the cache if available + elsif osm.changeset.user.data_public? + user_display_name_cache[user_id] = osm.changeset.user.display_name + else + user_display_name_cache[user_id] = nil + end + + unless user_display_name_cache[user_id].nil? + el['user'] = user_display_name_cache[user_id] + el['uid'] = user_id.to_s + end + end +end