]> git.ipfire.org Git - pbs.git/commitdiff
distros: Refactor fetching distributions
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 20 May 2023 11:07:45 +0000 (11:07 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 20 May 2023 11:07:45 +0000 (11:07 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/distribution.py

index d6b3da4ede28f8bae715b924e13ff979f3caa476..7f98eef7d68480f037d2d82d51cd30396b5fc931 100644 (file)
@@ -13,27 +13,37 @@ from .decorators import *
 log = logging.getLogger("pbs.distros")
 
 class Distributions(base.Object):
-       def _get_distribution(self, query, *args):
-               res = self.db.get(query, *args)
-
-               if res:
-                       return Distribution(self.backend, res.id, data=res)
-
        def _get_distributions(self, query, *args):
-               res = self.db.query(query, *args)
+               return self.db.fetch_many(Distribution, query, *args)
 
-               for row in res:
-                       yield Distribution(self.backend, row.id, data=row)
+       def _get_distribution(self, query, *args):
+               return self.db.fetch_one(Distribution, query, *args)
 
        def __iter__(self):
-               distros = self._get_distributions("SELECT * FROM distributions \
-                       WHERE deleted IS FALSE ORDER BY name")
+               distros = self._get_distributions("""
+                       SELECT
+                               *
+                       FROM
+                               distributions
+                       WHERE
+                               deleted IS FALSE
+                       ORDER BY
+                               name
+                       """,
+               )
 
                return iter(distros)
 
        def get_by_id(self, distro_id):
-               return self._get_distribution("SELECT * FROM distributions \
-                       WHERE id = %s", distro_id)
+               return self._get_distribution("""
+                       SELECT
+                               *
+                       FROM
+                               distributions
+                       WHERE
+                               id = %s
+                       """, distro_id,
+               )
 
        def get_by_slug(self, slug):
                return self._get_distribution("""
@@ -65,15 +75,18 @@ class Distributions(base.Object):
                # Insert into the database
                return self._get_distribution("""
                        INSERT INTO
-                               distributions(
-                                       name, distro_id, version_id
-                               )
+                               distributions
+                       (
+                               name,
+                               distro_id,
+                               version_id
+                       )
                        VALUES(
                                %s, %s, %s
                        )
                        RETURNING
-                               *""",
-                       name, distro_id, version_id,
+                               *
+                       """, name, distro_id, version_id,
                )