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