internetarchive icon indicating copy to clipboard operation
internetarchive copied to clipboard

Add support for JSON Patch test operations

Open jjjake opened this issue 1 year ago • 2 comments

jjjake avatar Feb 02 '24 21:02 jjjake

I changed the loop to this to make insert / append-list / remove for lists work, at least in some light testing:

for p in patch:
    path_parts = p['path'].split('/')
    if not source_metadata.get(path_parts[1]):
        continue
    if len(path_parts) == 2:
        src_val = source_metadata.get(path_parts[-1])
        p_test = {'op': 'test', 'path': p['path'], 'value': src_val}
    else:
        src_val = source_metadata.get(path_parts[1], [])
        p_test = {'op': 'test', 'path': '/' + path_parts[1], 'value': src_val}

    patch_tests.append(p_test)

MerlijnWajer avatar Feb 06 '24 11:02 MerlijnWajer

Thanks @MerlijnWajer! I just pushed a patch with your fix.

jjjake avatar Feb 06 '24 17:02 jjjake