From 4c109d6bd3a904f2531e3bac2e70e8b6f6e04d09 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Wed, 13 Mar 2019 14:37:20 +0000 Subject: Fix release being null in API when release is unapproved Fixes #129 --- app/querybuilder.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'app/querybuilder.py') diff --git a/app/querybuilder.py b/app/querybuilder.py index be1a1ac..f815dc2 100644 --- a/app/querybuilder.py +++ b/app/querybuilder.py @@ -35,6 +35,17 @@ class QueryBuilder: if self.search is not None and self.search.strip() == "": self.search = None + def getMinetestVersion(self): + if not self.protocol_version: + return None + + self.protocol_version = int(self.protocol_version) + version = MinetestRelease.query.filter(MinetestRelease.protocol>=self.protocol_version).first() + if version is not None: + return version.id + else: + return 10000000 + def buildPackageQuery(self): query = Package.query.filter_by(soft_deleted=False, approved=True) @@ -69,14 +80,9 @@ class QueryBuilder: query = query.filter(Package.media_license.has(License.is_foss == True)) if self.protocol_version: - self.protocol_version = int(self.protocol_version) - version = MinetestRelease.query.filter(MinetestRelease.protocol>=self.protocol_version).first() - if version is not None: - version = version.id - else: - version = 10000000 - + version = self.getMinetestVersion() query = query.join(Package.releases) \ + .filter(PackageRelease.approved==True) \ .filter(or_(PackageRelease.min_rel_id==None, PackageRelease.min_rel_id<=version)) \ .filter(or_(PackageRelease.max_rel_id==None, PackageRelease.max_rel_id>=version)) -- cgit v1.2.3