class Keys(base.Object):
+ def _get_keys(self, query, *args):
+ res = self.db.query(query, *args)
+
+ for row in res:
+ yield Key(self.backend, row.id, data=row)
+
+ def _get_key(self, query, *args):
+ res = self.db.get(query, *args)
+
+ if res:
+ return Key(self.backend, res.id, data=res)
+
+ def __iter__(self):
+ return self._get_keys("""
+ SELECT
+ *
+ FROM
+ keys
+ ORDER BY
+ uids
+ """)
+
def create(self, data):
fingerprint, key = read_key(data)
return key
- def get_all(self):
- query = self.db.query("SELECT id FROM keys ORDER BY uids")
-
- keys = []
- for key in query:
- key = Key(self.pakfire, key.id)
- keys.append(key)
-
- return keys
-
def get_by_id(self, id):
- key = self.db.get("SELECT id FROM keys WHERE id = %s", id)
- if not key:
- return
-
- return Key(self.pakfire, key.id)
+ return self._get_key("SELECT * FROM keys WHERE id = %s", id)
def get_by_fpr(self, fpr):
fpr = "%%%s" % fpr
- key = self.db.get("SELECT id FROM keys WHERE fingerprint LIKE %s", fpr)
- if not key:
- return
-
- return Key(self.pakfire, key.id)
+ return self._get_key("""
+ SELECT
+ *
+ FROM
+ keys
+ WHERE
+ fingerprint LIKE %s
+ """, fpr,
+ )
class Key(base.DataObject):
class KeysListHandler(base.BaseHandler):
def get(self):
- keys = self.backend.keys.get_all()
-
- self.render("keys-list.html", keys=keys)
+ self.render("keys-list.html", keys=self.backend.keys)
class KeysDownloadHandler(base.BaseHandler):