Fixed bug with with type in returned JSON introduced in previous commit

Also removed some redundant return statements
This commit is contained in:
Hunter Wittenborn 2021-09-16 03:47:33 -05:00
parent 25aea216c5
commit c56a23d21c
2 changed files with 11 additions and 18 deletions

View file

@ -66,16 +66,6 @@ async def rpc(request: Request,
returned_data["resultcount"] = 0 returned_data["resultcount"] = 0
returned_data["type"] = type returned_data["type"] = type
# Ensure type is valid.
if type is None:
returned_data["type"] = "error"
returned_data["error"] = "No request type/data specified."
return returned_data
elif type not in ("info", "multiinfo"):
returned_data["type"] = "error"
returned_data["error"] = "Incorrect request type specified."
return returned_data
# Take arguments from either 'args' or 'args[]' and put them into 'argument_list'. # Take arguments from either 'args' or 'args[]' and put them into 'argument_list'.
argument_list = [] argument_list = []

View file

@ -165,11 +165,6 @@ def RPC(**function_args):
# Get Snapshot URI # Get Snapshot URI
snapshot_uri = config.get("options", "snapshot_uri") snapshot_uri = config.get("options", "snapshot_uri")
# 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. # Set request type to run.
type_actions = { type_actions = {
"info": run_info, "info": run_info,
@ -180,19 +175,27 @@ def RPC(**function_args):
# specified type was valid in aurweb/routers/rpc.py. # specified type was valid in aurweb/routers/rpc.py.
if type in type_actions: if type in type_actions:
run_request = type_actions.get(type) run_request = type_actions.get(type)
# If type is 'info', overwrite type to 'multiinfo' to match the
# behavior of the PHP implementation.
if type == "info":
returned_data["type"] = "multiinfo"
# Remove duplicate arguments if type is 'multiinfo' so we don't
# fetch results for a package multiple times.
if returned_data["type"] == "multiinfo":
args = set(args)
for i in args: for i in args:
returned_data = run_request(returned_data, i, snapshot_uri) returned_data = run_request(returned_data, i, snapshot_uri)
elif type is None: elif type is None:
returned_data["type"] = "error" returned_data["type"] = "error"
returned_data["error"] = "No request type/data specified." returned_data["error"] = "No request type/data specified."
return returned_data
else: else:
returned_data["type"] = "error" returned_data["type"] = "error"
returned_data["error"] = "Incorrect request type specified." returned_data["error"] = "Incorrect request type specified."
return returned_data
return returned_data return returned_data