blob: ad5d4f0fc12e081f2344d70279c6ab07d4765b15 [file] [log] [blame]
import site
import os
site.addsitedir(os.path.join(os.path.dirname(__file__), "..", ".."))
import jsonmerge
def merge_partial_updates(base_obj, new_obj):
"""Merges 2 update objects, merging partials and replacing completes"""
schema = {
"properties": {
# Merge partials using fileUrl as an identifier field
"partials": {
"mergeStrategy": "arrayMergeById",
"mergeOptions": {
"idRef": "from"
}
},
# Replace completes - we don't usually have more than one
"completes": {
"mergeStrategy": "overwrite"
}
}
}
merger = jsonmerge.Merger(schema=schema)
return merger.merge(base_obj, new_obj)