Remove ObjectId from the tree
authorSebastian Spaeth <Sebastian@SSpaeth.de>
Tue, 25 Dec 2012 19:52:25 +0000 (20:52 +0100)
committerSebastian Spaeth <Sebastian@SSpaeth.de>
Tue, 25 Dec 2012 19:52:25 +0000 (20:52 +0100)
This was one of the last remaining Mongo holdouts and has been removed from
the tree herewith. Good bye, ObjectId.

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
mediagoblin/db/sql/fake.py
mediagoblin/db/util.py
mediagoblin/decorators.py
mediagoblin/processing/task.py
mediagoblin/tools/pagination.py
mediagoblin/tools/request.py
mediagoblin/user_pages/views.py

index bb91dbcb4801062a7834c11206b3bf87e8e9f65e..51c5127b4ce64788d6cbe7bf2531ab82272cfc0b 100644 (file)
@@ -21,17 +21,8 @@ calm the rest of the code base. Or provide super minimal
 implementations.
 
 Currently:
-- ObjectId "class": It's a function mostly doing
-  int(init_arg) to convert string primary keys into
-  integer primary keys.
 - DESCENDING "constant"
 """
 
 
 DESCENDING = object()  # a unique object for this "constant"
-
-
-def ObjectId(value=None):
-    if value is None:
-        return None
-    return int(value)
index f14f79aa3e111c37be1469270f9d5a58851858d3..b7e9313439bf94a97c91eaa170e6170a23c87a04 100644 (file)
@@ -15,6 +15,6 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 #TODO: check now after mongo removal if we can't rip out a layer of abstraction
-from mediagoblin.db.sql.fake import ObjectId, DESCENDING
+from mediagoblin.db.sql.fake import DESCENDING
 from mediagoblin.db.sql.util import atomic_update, check_media_slug_used, \
     media_entries_for_tag_slug, check_collection_slug_used
index ce5cb59cd4997eed110e1cb107559b8d018f5c96..f6169060b2cec7b0cbc085a2a81553e2401e1db4 100644 (file)
@@ -20,8 +20,7 @@ from urlparse import urljoin
 from werkzeug.exceptions import Forbidden
 from werkzeug.urls import url_quote
 
-from mediagoblin.db.util import ObjectId
-from mediagoblin.db.sql.models import User
+from mediagoblin.db.sql.models import MediaEntry, User
 from mediagoblin.tools.response import redirect, render_404
 
 
@@ -70,8 +69,7 @@ def user_may_delete_media(controller):
     """
     @wraps(controller)
     def wrapper(request, *args, **kwargs):
-        uploader_id = request.db.MediaEntry.find_one(
-            {'id': ObjectId(request.matchdict['media'])}).uploader
+        uploader_id = MediaEntry.query.get(request.matchdict['media']).uploader
         if not (request.user.is_admin or
                 request.user.id == uploader_id):
             raise Forbidden()
@@ -132,12 +130,12 @@ def get_user_media_entry(controller):
              'state': u'processed',
              'uploader': user.id})
 
-        # no media via slug?  Grab it via ObjectId
+        # no media via slug?  Grab it via object id
         if not media:
-            media = request.db.MediaEntry.find_one(
-                    {'id': ObjectId(request.matchdict['media']),
-                     'state': u'processed',
-                     'uploader': user.id})
+            media = MediaEntry.query.filter_by(
+                    id=request.matchdict['media'],
+                    state=u'processed',
+                    uploader=user.id).first()
             # Still no media?  Okay, 404.
             if not media:
                 return render_404(request)
@@ -206,9 +204,9 @@ def get_media_entry_by_id(controller):
     """
     @wraps(controller)
     def wrapper(request, *args, **kwargs):
-        media = request.db.MediaEntry.find_one(
-                {'id': ObjectId(request.matchdict['media']),
-                 'state': u'processed'})
+        media = MediaEntry.query.filter_by(
+                id=request.matchdict['media'],
+                state=u'processed').first()
         # Still no media?  Okay, 404.
         if not media:
             return render_404(request)
index 06a26bb710b7b8bb80f9db53f5073666dbac4e7e..b7e761f252386ddb25acf7fbcc589f2b792fe369 100644 (file)
@@ -19,7 +19,7 @@ import logging
 from celery.task import Task
 
 from mediagoblin import mg_globals as mgg
-from mediagoblin.db.util import ObjectId
+from mediagoblin.db.sql.models import MediaEntry
 from mediagoblin.processing import mark_entry_failed, BaseProcessingFail
 from mediagoblin.tools.processing import json_processing_callback
 
@@ -41,8 +41,7 @@ class ProcessMedia(Task):
         Pass the media entry off to the appropriate processing function
         (for now just process_image...)
         """
-        entry = mgg.database.MediaEntry.one(
-            {'id': ObjectId(media_id)})
+        entry = MediaEntry.query.get(media_id)
 
         # Try to process, and handle expected errors.
         try:
index 4c9b3118193838951c4d05d2c999d4883460d3ed..d0f08c9443ae4dd2c7711e2426567ef2b6def8e2 100644 (file)
@@ -40,7 +40,7 @@ class Pagination(object):
          - page: requested page
          - per_page: number of objects per page
          - cursor: db cursor
-         - jump_to_id: ObjectId, sets the page to the page containing the
+         - jump_to_id: object id, sets the page to the page containing the
            object with id == jump_to_id.
         """
         self.page = page
index a58d919dbf5746cfd9922f0486507eddfc4c135a..f40ab360791c29d6c6c0eb756b08dbc8e86e8f61 100644 (file)
@@ -15,7 +15,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 import logging
-from mediagoblin.db.util import ObjectId
+from mediagoblin.db.sql.models import User
 
 _log = logging.getLogger(__name__)
 
index 28ef90d6b1c702fcd2239eaaf19ce095d4b27fdb..78c020acd0c3daac819f42a364d7a2ed3974e9ae 100644 (file)
@@ -18,7 +18,7 @@ import logging
 import datetime
 
 from mediagoblin import messages, mg_globals
-from mediagoblin.db.util import DESCENDING, ObjectId
+from mediagoblin.db.util import DESCENDING
 from mediagoblin.db.sql.models import (MediaEntry, Collection, CollectionItem,
                                        User)
 from mediagoblin.tools.response import render_to_response, render_404, redirect
@@ -116,7 +116,7 @@ def media_home(request, media, page, **kwargs):
             page, media.get_comments(
                 mg_globals.app_config['comments_ascending']),
             MEDIA_COMMENTS_PER_PAGE,
-            ObjectId(request.matchdict.get('comment')))
+            request.matchdict.get('comment'))
     else:
         pagination = Pagination(
             page, media.get_comments(