Source code for notion.operations

from notion.utils import now


[docs]def build_operations( record_id: str, path: str, args: dict, command: str, table: str = "block", ) -> dict: """ Build sequence of operations for submitTransaction endpoint. Arguments --------- record_id : str ID of the object. path : str Key for the object. args : dict Arguments. command : str Command to execute. table : str, optional Table argument for endpoint. Defaults to "block". Returns ------- dict Valid dict for the endpoint. """ def maybe_to_int(value): try: return int(value) except ValueError: return value path = list(map(maybe_to_int, path.split("."))) path = [] if path == [""] else path return { "id": record_id, "path": path, "args": args, "command": command, "table": table, }
[docs]def operation_update_last_edited(user_id, record_id) -> dict: """ Convenience function for constructing "last edited" operation. When transactions are submitted from the web UIit also includes an operation to update the "last edited" fields, so we want to send those too, for consistency. Arguments --------- user_id : str User ID record_id : str ID of the object. Returns ------- dict Constructed dict with last edited operation included. """ return build_operations( record_id=record_id, path="", args={"last_edited_by": user_id, "last_edited_time": now()}, command="update", )