From fde25105d7fa0f626b3eb1b1fcd2633b5d0f312b Mon Sep 17 00:00:00 2001 From: "WQY\\qiong" Date: Sat, 17 Dec 2022 09:42:56 +0800 Subject: [PATCH] Code refactor for command --- api/command.py | 38 ++++++++++++++------------------------ 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/api/command.py b/api/command.py index 0c3ae5a..30b266b 100644 --- a/api/command.py +++ b/api/command.py @@ -290,7 +290,7 @@ def execute_batch_commands(name: str, cs: ChangeSet) -> ChangeSet: return result -def cache_add_command(name: str, cs: ChangeSet) -> SqlChangeSet | None: +def cache_add_command(name: str, cs: ChangeSet) -> DbChangeSet | None: type = cs.operations[0]['type'] if type == _s1_title: @@ -359,7 +359,7 @@ def cache_add_command(name: str, cs: ChangeSet) -> SqlChangeSet | None: return None -def cache_update_command(name: str, cs: ChangeSet) -> SqlChangeSet | None: +def cache_update_command(name: str, cs: ChangeSet) -> DbChangeSet | None: type = cs.operations[0]['type'] if type == _s1_title: @@ -378,8 +378,8 @@ def cache_update_command(name: str, cs: ChangeSet) -> SqlChangeSet | None: return set_valve_cache(name, cs) elif type == _s8_tag: return set_tag_cache(name, cs) - elif type == _s9_demand: # exception, batch command ... - return None + elif type == _s9_demand: + return set_demand_cache(name, cs) elif type == _s10_status: return set_status_cache(name, cs) elif type == _s11_pattern: @@ -428,7 +428,7 @@ def cache_update_command(name: str, cs: ChangeSet) -> SqlChangeSet | None: return None -def cache_delete_command(name: str, cs: ChangeSet) -> SqlChangeSet | None: +def cache_delete_command(name: str, cs: ChangeSet) -> DbChangeSet | None: type = cs.operations[0]['type'] if type == _s1_title: @@ -498,10 +498,10 @@ def cache_delete_command(name: str, cs: ChangeSet) -> SqlChangeSet | None: def execute_batch_command(name: str, cs: ChangeSet) -> ChangeSet: - redo_sql_s = [] - undo_sql_s = [] - redo_cs_s = [] - undo_cs_s = [] + redo_sql_s : list[str] = [] + undo_sql_s : list[str] = [] + redo_cs_s : list[dict[str, Any]] = [] + undo_cs_s : list[dict[str, Any]] = [] try: for op in cs.operations: @@ -513,8 +513,6 @@ def execute_batch_command(name: str, cs: ChangeSet) -> ChangeSet: r = cache_add_command(name, ChangeSet(op)) elif operation == API_UPDATE: r = cache_update_command(name, ChangeSet(op)) - if op['type'] == 'demand': - r = set_demand_cache(name, ChangeSet(op)) elif operation == API_DELETE: r = cache_delete_command(name, ChangeSet(op)) @@ -522,18 +520,10 @@ def execute_batch_command(name: str, cs: ChangeSet) -> ChangeSet: print(f'ERROR: Build [{op}] returns None') return ChangeSet() - if op['type'] == 'demand': - redo_sql_s.append(r.redo_sql) - undo_sql_s.append(r.undo_sql) - for d in r.redo_cs: - redo_cs_s.append(d) - for d in r.undo_cs.reverse(): # need reverse again... - undo_cs_s.append(r.undo_cs) - else: - redo_sql_s.append(r.redo_sql) - undo_sql_s.append(r.undo_sql) - redo_cs_s.append(r.redo_cs) - undo_cs_s.append(r.undo_cs) + redo_sql_s.append(r.redo_sql) + undo_sql_s.append(r.undo_sql) + redo_cs_s += r.redo_cs + undo_cs_s += r.undo_cs except: pass @@ -546,6 +536,6 @@ def execute_batch_command(name: str, cs: ChangeSet) -> ChangeSet: undo_cs_s.reverse() try: - return execute_batch(name, redo_sql, undo_sql, redo_cs_s, undo_cs_s) + return execute_command(name, DbChangeSet(redo_sql, undo_sql, redo_cs_s, undo_cs_s)) except: return ChangeSet()