From 25aea216c5c3e58d6738c1ff3c9a729626c1b596 Mon Sep 17 00:00:00 2001 From: Hunter Wittenborn Date: Thu, 16 Sep 2021 03:34:52 -0500 Subject: [PATCH] Simplified and reduced redundancy in code - Removed 'if type == "info"' as requested by @kevr - Checked for valid type against the type dictionary, removing the needed to maintain two separate spots for type definitions. --- aurweb/routers/rpc.py | 4 ---- aurweb/rpc.py | 22 ++++++++++++++++------ 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/aurweb/routers/rpc.py b/aurweb/routers/rpc.py index f4274d77..bc5e482c 100644 --- a/aurweb/routers/rpc.py +++ b/aurweb/routers/rpc.py @@ -58,10 +58,6 @@ async def rpc(request: Request, elif v != 5: return {"error": "Invalid version specified."} - # The PHP implementation sets the type to 'multiinfo' when the type is set to 'info'. - if type == "info": - type = "multiinfo" - # Defaults for returned data returned_data = {} diff --git a/aurweb/rpc.py b/aurweb/rpc.py index a9694f70..6abdba47 100644 --- a/aurweb/rpc.py +++ b/aurweb/rpc.py @@ -165,15 +165,14 @@ def RPC(**function_args): # Get Snapshot URI snapshot_uri = config.get("options", "snapshot_uri") - # Remove duplicate arguments if type is 'multiinfo' so we don't fetch - # results for a package multiple times. - # - # Note that the type is set to 'multiinfo' when 'type=info' is passed. - if type == "multiinfo": + # Remove duplicate arguments if type is 'info' or 'multiinfo' so we don't + # fetch results for a package multiple times. + if type in ("info", "multiinfo"): args = set(args) # Set request type to run. type_actions = { + "info": run_info, "multiinfo": run_info } @@ -181,8 +180,19 @@ def RPC(**function_args): # specified type was valid in aurweb/routers/rpc.py. if type in type_actions: run_request = type_actions.get(type) - + for i in args: returned_data = run_request(returned_data, i, snapshot_uri) + elif type is None: + returned_data["type"] = "error" + returned_data["error"] = "No request type/data specified." + return returned_data + + else: + returned_data["type"] = "error" + returned_data["error"] = "Incorrect request type specified." + return returned_data + + return returned_data