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

Removed unneeded database queries from RPC interface

Also modified returned data for test_rpc_no_dependencies() in 
test/test_rpc_info.py, as there was a key that contained an incorrect 
value for some reason.
parent 87a9390a
No related branches found
No related tags found
No related merge requests found
Pipeline #11420 failed
......@@ -109,28 +109,27 @@ def add_rels(**args):
def run_info(**args):
returned_data = args["returned_data"]
package_name = args["package_name"]
snapshot_uri = args["snapshot_uri"]
returned_data = args.get("returned_data")
package_name = args.get("package_name")
snapshot_uri = args.get("snapshot_uri")
package_object = args.get("package_object")
# Get package name.
db_package = db.query(Package).filter(Package.Name == package_name)
if db_package.count() == 0:
return returned_data
if package_object is None:
db_package = db.query(Package).filter(Package.Name == package_name)
db_package = db_package.first()
if db_package.count() == 0:
return returned_data
# Get name of package under PackageBaseID.
db_package_baseid = db.query(PackageBase).filter(PackageBase.ID == db_package.PackageBaseID).first()
db_package = db_package.first()
# Get maintainer info.
db_package_maintainer = db.query(User).filter(User.ID == db_package_baseid.MaintainerUID).first()
else:
db_package = package_object
# Start building our array.
current_array = {}
returned_data["resultcount"] = returned_data["resultcount"] + 1
# Data from the Packages table.
current_array["ID"] = db_package.ID
current_array["Name"] = db_package.Name
current_array["PackageBaseID"] = db_package.PackageBaseID
......@@ -138,7 +137,7 @@ def run_info(**args):
current_array["Description"] = db_package.Description
current_array["URL"] = db_package.URL
# PackageBase table.
db_package_baseid = db_package.PackageBase
current_array["PackageBase"] = db_package_baseid.Name
current_array["NumVotes"] = db_package_baseid.NumVotes
current_array["Popularity"] = db_package_baseid.Popularity
......@@ -146,36 +145,37 @@ def run_info(**args):
current_array["FirstSubmitted"] = db_package_baseid.SubmittedTS
current_array["LastModified"] = db_package_baseid.ModifiedTS
# User table.
try:
# Maintainer.
db_package_maintainer = db_package.PackageBase.Maintainer
if db_package_maintainer is not None:
current_array["Maintainer"] = db_package_maintainer.Username
except AttributeError:
else:
current_array["Maintainer"] = None
# Generate and add snapshot_uri.
current_array["URLPath"] = snapshot_uri.replace("%s", package_name)
# Add package votes.
current_array["NumVotes"] = db.query(PackageVote).count()
current_array["NumVotes"] = db_package.PackageBase.package_votes.count()
# Generate dependency listing.
db_dep = db.query(PackageDependency).filter(PackageDependency.PackageID == db_package.ID)
current_array = add_deps(current_array=current_array, db_dep=db_dep)
current_array = add_deps(current_array=current_array, db_dep=db_package.package_dependencies)
# Generate relationship listing.
db_rel = db.query(PackageRelation).filter(PackageRelation.PackageID == db_package.ID)
current_array = add_rels(current_array=current_array, db_rel=db_rel)
current_array = add_rels(current_array=current_array, db_rel=db_package.package_relations)
# License table.
current_array["License"] = []
db_package_license = db_package.package_license
for i in db.query(PackageLicense).filter(PackageLicense.PackageID == db_package.ID):
current_array["License"] += [db.query(License).first().Name]
if db_package_license is not None:
current_array["License"] += [db_package_license.License.Name]
# Keywords table.
current_array["Keywords"] = []
for i in db.query(PackageKeyword).filter(PackageKeyword.PackageBaseID == db_package_baseid.ID):
for i in db_package.PackageBase.keywords.all():
current_array["Keywords"] += [i.Keyword]
# Add current array to returned results.
......@@ -195,8 +195,7 @@ def run_search_dependencies(**args):
.all())
for i in db_dependency_packages:
upstream_package_name = db.query(Package).filter(Package.ID == i.PackageID).first().Name
run_info_list += [upstream_package_name]
run_info_list += [i.Package]
# Define search functions for searching the db for data.
......@@ -226,13 +225,14 @@ def run_search(**args):
search_id = search_types.get(search_by)
for i in search.search_by(search_id, package_name).query.all():
run_info_list += [i.Name]
run_info_list += [i]
for i in run_info_list:
returned_data = run_info(returned_data=returned_data,
package_name=i,
package_name=i.Name,
snapshot_uri=snapshot_uri,
search_by=search_by)
search_by=search_by,
package_object=i)
return returned_data
......
......@@ -278,7 +278,7 @@ def test_rpc_no_dependencies():
'Description': 'Wubby wubby on wobba wuubu',
'URL': 'https://example.com/',
'PackageBase': 'chungy-chungus',
'NumVotes': 3,
'NumVotes': 0,
'Popularity': 0.0,
'OutOfDate': None,
'Maintainer': 'user1',
......
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