aboutsummaryrefslogtreecommitdiff
path: root/app/querybuilder.py
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2019-03-13 14:37:20 +0000
committerrubenwardy <rw@rubenwardy.com>2019-03-13 14:37:27 +0000
commit4c109d6bd3a904f2531e3bac2e70e8b6f6e04d09 (patch)
treeb7359fdb36a30766e389d2843ab8fcfccce0a2a2 /app/querybuilder.py
parent9c2c8c21f1e3b412328f05629204a7cf105236c4 (diff)
downloadcheatdb-4c109d6bd3a904f2531e3bac2e70e8b6f6e04d09.tar.xz
Fix release being null in API when release is unapproved
Fixes #129
Diffstat (limited to 'app/querybuilder.py')
-rw-r--r--app/querybuilder.py20
1 files changed, 13 insertions, 7 deletions
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))