From 390703b41e7c46e0dcb14c14d7a8aba09483c7db Mon Sep 17 00:00:00 2001
From: Victor Shyba <victor1984@riseup.net>
Date: Thu, 14 Dec 2017 14:27:02 -0300
Subject: [PATCH] [feature] get_size_list for listing blobs sizes

---
 src/leap/soledad/client/_db/blobs/sql.py | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/leap/soledad/client/_db/blobs/sql.py b/src/leap/soledad/client/_db/blobs/sql.py
index 6b92c503..a192ae1e 100644
--- a/src/leap/soledad/client/_db/blobs/sql.py
+++ b/src/leap/soledad/client/_db/blobs/sql.py
@@ -217,6 +217,20 @@ class SQLiteBlobBackend(object):
         else:
             defer.returnValue([])
 
+    @defer.inlineCallbacks
+    def get_size_list(self, blob_ids, namespace=''):
+        query = 'SELECT BLOB_ID, LENGTH(PAYLOAD) FROM BLOBS WHERE BLOB_ID IN '
+        query += ('(%s)' % ', '.join(['?' for _ in blob_ids]))
+        query += ' AND NAMESPACE = ? ORDER BY BLOB_ID'
+        values = tuple(blob_ids) + (namespace,)
+        results = yield self.dbpool.runQuery(query, values)
+        if results:
+            results = dict([(result[0], result[1]) for result in results])
+            results = [(blob_id, results[blob_id]) for blob_id in blob_ids]
+            defer.returnValue(results)
+        else:
+            defer.returnValue([])
+
     @defer.inlineCallbacks
     def exists(self, blob_id, namespace=''):
         query = 'SELECT blob_id from blobs WHERE blob_id = ? AND namespace= ?'
-- 
GitLab