Merge pull request #5704 from jsangmeister/datastore-partial-list-updates
Update datastore specs
This commit is contained in:
commit
9abf787d99
@ -84,14 +84,38 @@ Interface CreateEvent {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Note: For deleting keys, they must be set to `None`. These keys
|
/**
|
||||||
// will be removed from the model.
|
* Note: For deleting keys, they must be set to `None`. These keys will be removed from
|
||||||
|
* the model.
|
||||||
|
* list_fields can be used to partially update list fields: the values in `add` will be
|
||||||
|
* appended to the given field, the values in `remove` will be removed from the field.
|
||||||
|
* Either fields or list_fields must be given or an error will be thrown.
|
||||||
|
* An exception will be thrown if:
|
||||||
|
* - a field in list_fields is not empty and not a list
|
||||||
|
* - a field in list_fields contains other entries than strings or ints
|
||||||
|
* Other edge cases:
|
||||||
|
* - an element should be added that is already in the list: this element is ignored,
|
||||||
|
* other potentially given elements are still added as normal
|
||||||
|
* - an element should be removed that is not in the list: this element is ignored,
|
||||||
|
* other potentially given elements are still removed as normal
|
||||||
|
* - the field does not yet exist on the model:
|
||||||
|
* - add: same function as if the value was given in `fields`
|
||||||
|
* - remove: nothing happens
|
||||||
|
*/
|
||||||
Interface UpdateEvent {
|
Interface UpdateEvent {
|
||||||
type: 'update';
|
type: 'update';
|
||||||
fqid: Fqid;
|
fqid: Fqid;
|
||||||
fields: {
|
fields: {
|
||||||
<field>: Value;
|
<field>: Value;
|
||||||
}
|
}
|
||||||
|
list_fields: {
|
||||||
|
add: {
|
||||||
|
<field>: Value[];
|
||||||
|
}
|
||||||
|
remove: {
|
||||||
|
<field>: Value[];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Interface RestoreEvent {
|
Interface RestoreEvent {
|
||||||
|
Loading…
Reference in New Issue
Block a user