aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mediagoblin/plugins/api/tools.py1
-rw-r--r--mediagoblin/plugins/api/views.py11
2 files changed, 11 insertions, 1 deletions
diff --git a/mediagoblin/plugins/api/tools.py b/mediagoblin/plugins/api/tools.py
index e5aca29b..c4630ba7 100644
--- a/mediagoblin/plugins/api/tools.py
+++ b/mediagoblin/plugins/api/tools.py
@@ -95,6 +95,7 @@ def get_entry_serializable(entry, urlgen):
'description': entry.description,
'description_html': entry.description_html,
'media_type': entry.media_type,
+ 'state': entry.state,
'permalink': entry.url_for_self(urlgen, qualified=True),
'media_files': get_media_file_paths(entry.media_files, urlgen)}
diff --git a/mediagoblin/plugins/api/views.py b/mediagoblin/plugins/api/views.py
index 2eb9e414..d537ec6e 100644
--- a/mediagoblin/plugins/api/views.py
+++ b/mediagoblin/plugins/api/views.py
@@ -20,6 +20,7 @@ import uuid
from os.path import splitext
from webob import exc, Response
+from cgi import FieldStorage
from werkzeug.utils import secure_filename
from celery import registry
@@ -43,10 +44,18 @@ _log = logging.getLogger(__name__)
@require_active_login
def post_entry(request):
_log.debug('Posting entry')
+
+ if request.method == 'OPTIONS':
+ return json_response({'status': 200})
+
if request.method != 'POST':
+ _log.debug('Must POST against post_entry')
return exc.HTTPBadRequest()
- if not 'file' in request.POST or not hasattr(request.POST['file'], 'file'):
+ if not 'file' in request.POST \
+ or not isinstance(request.POST['file'], FieldStorage) \
+ or not request.POST['file'].file:
+ _log.debug('File field not found')
return exc.HTTPBadRequest()
media_file = request.POST['file']