Commit 25aea216 authored by Hunter Wittenborn's avatar Hunter Wittenborn
Browse files

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.
parent a4f5c8be
......@@ -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 = {}
......
......@@ -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
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment