Skip to content
Snippets Groups Projects
Commit 5b7bd8cc authored by Hunter Wittenborn's avatar Hunter Wittenborn
Browse files

Added name, name-desc, and maintainer 'by' types

parent 91bc570e
No related branches found
No related tags found
No related merge requests found
Pipeline #11349 failed
......@@ -98,6 +98,7 @@ async def rpc(request: Request,
type=type,
argument_list=argument_list,
returned_data=returned_data,
search_by=by)
search_by=by,
request=request)
return returned_data
......@@ -12,6 +12,7 @@ from aurweb.models.package_relation import PackageRelation
from aurweb.models.package_vote import PackageVote
from aurweb.models.relation_type import CONFLICTS_ID, PROVIDES_ID, REPLACES_ID
from aurweb.models.user import User
from aurweb.packages.search import PackageSearch
# Define dependency types.
DEP_TYPES = {
......@@ -101,7 +102,7 @@ def add_rels(current_array, db_rel):
return current_array
def run_info(returned_data, package_name, snapshot_uri, search_by):
def run_info(returned_data, package_name, snapshot_uri, search_by, request):
# Get package name.
db_package = db.query(Package).filter(Package.Name == package_name)
......@@ -172,23 +173,40 @@ def run_info(returned_data, package_name, snapshot_uri, search_by):
return returned_data
def run_search_dependencies(search_by, package_name, run_info_list):
dependency_id = DEP_NAMES[search_by]
db_dependency_packages = (db.query(PackageDependency)
.filter(PackageDependency.DepName == package_name)
.filter(PackageDependency.DepTypeID == dependency_id)
.all())
for i in db_dependency_packages:
upstream_package_name = db.query(PackageBase).filter(PackageBase.ID == i.PackageID).first().Name
run_info_list += [upstream_package_name]
# Define search functions for searching the db for data.
def run_search(returned_data, package_name, snapshot_uri, search_by):
def run_search(returned_data, package_name, snapshot_uri, search_by, request):
run_info_list = []
if search_by in DEP_NAMES.keys():
dependency_id = DEP_NAMES[search_by]
db_dependency_packages = (db.query(PackageDependency)
.filter(PackageDependency.DepName == package_name)
.filter(PackageDependency.DepTypeID == dependency_id)
.all())
run_search_dependencies(search_by, package_name, run_info_list)
else:
search = PackageSearch(request.user)
search_types = {
"name": search._search_by_name,
"name-desc": search._search_by_namedesc,
"maintainer": search._search_by_maintainer
}
search_runner = search_types.get(search_by)
for i in db_dependency_packages:
upstream_package_name = db.query(PackageBase).filter(PackageBase.ID == i.PackageID).first().Name
run_info_list += [upstream_package_name]
for i in search_runner(package_name).query.all():
run_info_list += [i.Name]
for i in run_info_list:
returned_data = run_info(returned_data, i, snapshot_uri, search_by)
returned_data = run_info(returned_data, i, snapshot_uri, search_by, request)
return returned_data
......@@ -202,6 +220,7 @@ def RPC(**function_args):
args = function_args.get("argument_list")
returned_data = function_args.get("returned_data")
search_by = function_args.get("search_by")
request = function_args.get("request")
# Get Snapshot URI
snapshot_uri = config.get("options", "snapshot_uri")
......@@ -238,7 +257,7 @@ def RPC(**function_args):
args = set(args)
for i in args:
returned_data = run_request(returned_data, i, snapshot_uri, search_by)
returned_data = run_request(returned_data, i, snapshot_uri, search_by, request)
# Return the error message if one was made.
if returned_data.get("type") == "error":
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment