API: Fixed media file URLs, limits

- Added default limit and limit arg to get_entries
- Fixed URL generation for BasicFileStorage files in API
This commit is contained in:
Joar Wandborg 2012-09-15 22:34:34 +02:00
parent 965b39a84f
commit c92aa0d0b2
2 changed files with 15 additions and 4 deletions

View File

@ -19,6 +19,7 @@ import json
from functools import wraps
from webob import exc, Response
from urlparse import urljoin
from mediagoblin import mg_globals
from mediagoblin.tools.pluginapi import PluginManager
@ -106,13 +107,16 @@ def get_media_file_paths(media_files, urlgen):
filepath` pairs.
:param urlgen: An urlgen object, usually found on request.urlgen.
'''
if isinstance(mg_globals.public_store, BasicFileStorage):
pass # TODO
media_urls = {}
for key, val in media_files.items():
media_urls[key] = mg_globals.public_store.file_url(val)
if isinstance(mg_globals.public_store, BasicFileStorage):
# BasicFileStorage does not provide a qualified URI
media_urls[key] = urljoin(
urlgen('index', qualified=True),
mg_globals.public_store.file_url(val))
else:
media_urls[key] = mg_globals.public_store.file_url(val)
return media_urls

View File

@ -129,8 +129,15 @@ def api_test(request):
def get_entries(request):
entries = request.db.MediaEntry.query
# TODO: Make it possible to fetch unprocessed media, or media in-processing
entries = entries.filter_by(state=u'processed')
# TODO: Add sort order customization
entries = entries.order_by(request.db.MediaEntry.created.desc())
# TODO: Fetch default and upper limit from config
entries = entries.limit(int(request.GET.get('limit') or 10))
entries_serializable = []
for entry in entries: