diff --git a/api/change_set.py b/api/change_set.py index 7e91608..fbcd489 100644 --- a/api/change_set.py +++ b/api/change_set.py @@ -1,12 +1,22 @@ class ChangeSet: - def __init__(self) -> None: + def __init__(self): self.operations : list[dict[str, str]] = [] - def add(self, type: str, id: str) -> None: + def add(self, type: str, id: str): self.operations.append({ 'operation': 'add', 'type': type, 'id': id }) + return self - def delete(self, type: str, id: str) -> None: + def delete(self, type: str, id: str): self.operations.append({ 'operation': 'delete', 'type': type, 'id': id }) + return self - def update(self, type: str, id: str, property: str) -> None: - self.operations.append({ 'operation': 'update', 'type': type, 'id': id, 'property': property }) \ No newline at end of file + def update(self, type: str, id: str, properties: list[str]): + self.operations.append({ 'operation': 'update', 'type': type, 'id': id, 'properties': properties }) + return self + + def append(self, other) -> None: + self.operations += other.operations + return self + + def compress(self) -> None: + return self