diff options
author | rubenwardy <rw@rubenwardy.com> | 2019-03-13 14:37:20 +0000 |
---|---|---|
committer | rubenwardy <rw@rubenwardy.com> | 2019-03-13 14:37:27 +0000 |
commit | 4c109d6bd3a904f2531e3bac2e70e8b6f6e04d09 (patch) | |
tree | b7359fdb36a30766e389d2843ab8fcfccce0a2a2 /app/querybuilder.py | |
parent | 9c2c8c21f1e3b412328f05629204a7cf105236c4 (diff) | |
download | cheatdb-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.py | 20 |
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)) |