upload refactor: Use prepare_entry in api.
[mediagoblin.git] / mediagoblin / plugins / api / views.py
index 15c9a082c1042bae7a98ef57a6daf5cb6302471e..e8f64574cf260a560da5cdcefc3304d71ba6f3b9 100644 (file)
 
 import json
 import logging
-import uuid
 
 from os.path import splitext
 from werkzeug.datastructures import FileStorage
 from werkzeug.exceptions import BadRequest, Forbidden
-from werkzeug.utils import secure_filename
 from werkzeug.wrappers import Response
 
 from mediagoblin.decorators import require_active_login
@@ -29,7 +27,7 @@ from mediagoblin.meddleware.csrf import csrf_exempt
 from mediagoblin.media_types import sniff_media
 from mediagoblin.plugins.api.tools import api_auth, get_entry_serializable, \
         json_response
-from mediagoblin.submit.lib import run_process_media
+from mediagoblin.submit.lib import prepare_entry, run_process_media
 
 _log = logging.getLogger(__name__)
 
@@ -69,26 +67,12 @@ def post_entry(request):
 
     entry.generate_slug()
 
-    task_id = unicode(uuid.uuid4())
-
-    # Now store generate the queueing related filename
-    queue_filepath = request.app.queue_store.get_unique_filepath(
-        ['media_entries',
-            task_id,
-            secure_filename(media_file.filename)])
-
     # queue appropriately
-    queue_file = request.app.queue_store.get_file(
-        queue_filepath, 'wb')
+    queue_file = prepare_entry(request, entry, media_file.filename)
 
     with queue_file:
         queue_file.write(request.files['file'].stream.read())
 
-    # Add queued filename to the entry
-    entry.queued_media_file = queue_filepath
-
-    entry.queued_task_id = task_id
-
     # Save now so we have this data before kicking off processing
     entry.save()