Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@sugarlabs.org>2014-05-08 13:44:00 (GMT)
committer Aleksey Lim <alsroot@sugarlabs.org>2014-05-08 13:44:00 (GMT)
commit03888767cf46f2e6433c1e89b3cee0320fc5012b (patch)
treea8377854bf0269044b3331040682a612d30ceef6
parent70c1b1a26a610c082a49bd5fb29e6dca2bf47943 (diff)
Return assets from the /assets API route
-rw-r--r--sugar_network/db/blobs.py2
-rw-r--r--sugar_network/db/routes.py4
-rw-r--r--sugar_network/toolkit/router.py6
3 files changed, 11 insertions, 1 deletions
diff --git a/sugar_network/db/blobs.py b/sugar_network/db/blobs.py
index 0566e4f..14bbe9c 100644
--- a/sugar_network/db/blobs.py
+++ b/sugar_network/db/blobs.py
@@ -158,6 +158,8 @@ class Blobs(object):
def get(self, digest):
path = self.path(digest)
+ if not isinstance(digest, basestring):
+ digest = os.sep.join(digest)
if exists(path + _META_SUFFIX):
meta = _read_meta(path)
if not exists(path):
diff --git a/sugar_network/db/routes.py b/sugar_network/db/routes.py
index 29507d3..22e3782 100644
--- a/sugar_network/db/routes.py
+++ b/sugar_network/db/routes.py
@@ -172,6 +172,10 @@ class Routes(object):
def blobs(self):
return self.volume.blobs.get(this.request.path[1:])
+ @fallbackroute('GET', ['assets'])
+ def assets(self):
+ return self.volume.blobs.get(this.request.path)
+
@contextmanager
def _post(self, access):
content = this.request.content
diff --git a/sugar_network/toolkit/router.py b/sugar_network/toolkit/router.py
index 7b2186d..6e3b43b 100644
--- a/sugar_network/toolkit/router.py
+++ b/sugar_network/toolkit/router.py
@@ -376,7 +376,11 @@ class File(str):
if meta:
url = meta.get('location')
if not url and digest:
- url = '%s/blobs/%s' % (this.request.static_prefix, digest)
+ url = '%s/' % this.request.static_prefix
+ if '/' in digest:
+ url += digest
+ else:
+ url += 'blobs/' + digest
self = str.__new__(cls, url)
self.meta = meta