Set or change metadata and/or status-bits of a record
Set or change metadata and/or status-bits of a record.
Data is sent as json in the BODY of the request.
- metadatas is an array of simple “actions” that are applied in the same order as defined into json.
- field can be specified by meta_struct_id or by name
- field value (when relevant) can be specified by meta_id or by actual value
- method to match a value can be (strict | ignore-case | regexp); default is “ignore-case”
- to act on multi-values we must set an “action” (set | add | delete | replace); default is “set”
- default action “set” and special value (null, arrays) allow to write simplified actions
- the “replace” action is useful to set/add values only if a value already exists
Body examples :
mono-valued fields
set a mono-value field by its meta_struct_id
{
"metadatas": [
{
"meta_struct_id": 1,
"action": "set",
"value": "A pretty string"
}
]
}
same thing (because default action is “set”), by field name
{
"metadatas": [
{
"field_name": "Author",
"value": "John Doe"
}
]
}
delete a mono-valued field
{
"metadatas": [
{
"field_name": "Copyright",
"action": "delete"
}
]
}
same thing
{
"metadatas": [
{
"field_name": "Copyright",
"value": null
}
]
}
multi-valued
replace a keyword if we know its meta-id
{
"metadatas": [
{
"field_name": "Keywords",
"meta_id": 678,
"value": "Dog"
}
]
}
delete a specific keyword by its meta-id (we could also set action : “delete”, omit value, …)
{
"metadatas": [
{
"field_name": "Keywords",
"meta_id": 345,
"value": null
}
]
}
delete a specific keyword by its value. Since we must pass the value (not null), we must set the action “delete”
nb : the default matching method is “ignore-case” so we can write the actual value all small letters
{
"metadatas": [
{
"field_name": "Keywords",
"action": "delete",
"value": "doggy"
}
]
}
delete all Keywords
{
"metadatas": [
{
"field_name": "Keywords",
"value": null
}
]
}
add a keyword
{
"metadatas": [
{
"field_name": "Keywords",
"action": "add",
"value": "Cat"
}
]
}
replace all keywords by new ones
{
"metadatas": [
{
"field_name": "Keywords",
"value": null
},
{
"field_name": "Keywords",
"action": "add",
"value": "Cat"
},
{
"field_name": "Keywords",
"action": "add",
"value": "Dog"
}
]
}
same thing using an array
{
"metadatas": [
{
"field_name": "Keywords",
"value": [
"Dog",
"Cat",
]
}
]
}
simplification of multiple same actions with arrays as value
{
"metadatas": [
{
"field_name": "Keywords",
"action": "delete",
"value": [
"cop",
"bobby",
"pig",
"nicks"
]
},
{
"field_name": "Keywords",
"action": "add",
"value": [
"Policeman",
"Arrest"
]
}
]
}
replacing a keyword by value can be 2 actions if we know that the bad value exists…
{
"metadatas": [
{
"field_name": "Keywords",
"action": "delete",
"value": "cop"
},
{
"field_name": "Keywords",
"action": "add",
"value": "Policeman"
}
]
}
replace-if-exists
…but we can also use the “replace” action if we are not sure
{
"metadatas": [
{
"field_name": "Keywords",
"action": "replace",
"value": "cop",
"replace_with": "Policeman"
}
]
}
fix spelling errors with regexp
{
"metadatas": [
{
"field_name": "Persons",
"action": "replace",
"match_method": "regexp",
"value": "/joh?nn?[i|y]\w+hall?[i|y]day/\w+in\w([0-9]{4})/i",
"replace_with": "Johnny Halliday in $1"
}
]
}
add translations for existing keywords (using “replace”)
nb : multi-values are kept unique so double replacement is not a pb.
{
"metadatas": [
{
"field_name": "Keywords",
"action": "replace",
"value": "dog",
"replace_with": [
"Dog",
"Chien"
]
},
{
"field_name": "Keywords",
"action": "replace",
"value": "chien",
"replace_with": [
"Dog",
"Chien"
]
}
]
}
same thing using regexp
{
"metadatas": [
{
"field_name": "Keywords",
"action": "replace",
"value": "/cop|bobby|pig|flic/i",
"match_method": "regexp",
"replace_with": [
"Policeman",
"Policier"
]
}
]
}
Status-bits
sb can be changed with the same api.
To not get confused with "names", sb are referenced by bit number only 4…31
{
"metadatas": [
...
],
"status": [
{
"bit": 4,
"state": true
},
{
"bit": 5,
"state": false
},
{
"bit": 6,
"state": false
},
{
"bit": 7,
"state": false
}
]
}
Path parameters
ID of the databox
ID of the record
Request body
Response
ok