[snowy] Support for checking and incrementing latest_sync_rev, and applying it to Notes during an update.
- From: Sanford Armstrong <sharm src gnome org>
- To: svn-commits-list gnome org
- Subject: [snowy] Support for checking and incrementing latest_sync_rev, and applying it to Notes during an update.
- Date: Mon, 18 May 2009 02:57:33 -0400 (EDT)
commit f563092c25c7d6c01ed06d3ba15806be845bbbc5
Author: Sandy Armstrong <sanfordarmstrong gmail com>
Date: Sun May 17 23:49:57 2009 -0700
Support for checking and incrementing latest_sync_rev, and applying it to Notes during an update.
---
api/handlers.py | 17 +++++++++++++++--
1 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/api/handlers.py b/api/handlers.py
index 9faab9b..7eb0255 100644
--- a/api/handlers.py
+++ b/api/handlers.py
@@ -95,8 +95,19 @@ class NotesHandler(BaseHandler):
if request.user != user:
return rc.FORBIDDEN
- changes = json.loads(request.raw_post_data)['note-changes']
- for c in changes:
+ update = json.loads(request.raw_post_data)
+
+ current_sync_rev = get_latest_sync_rev(user)
+ if update.has_key('latest-sync-revision'):
+ new_sync_rev = update['latest-sync-revision']
+ else:
+ new_sync_rev = current_sync_rev + 1
+
+ if new_sync_rev != current_sync_rev + 1:
+ # TODO: Return a more useful error response?
+ return rc.BAD_REQUEST
+
+ for c in update['note-changes']:
note, created = Note.objects.get_or_create(author=user, guid=c['guid'])
if c.has_key('command') and c['command'] == 'delete':
note.delete()
@@ -111,6 +122,8 @@ class NotesHandler(BaseHandler):
note.modified = datetime.now()
if c.has_key('create-date'): note.created = clean_date(c['create-date'])
if c.has_key('open-on-startup'): note.open_on_startup = (c['open-on-startup'] == 'true')
+ note.last_sync_rev = new_sync_rev
+ # TODO: if User model gets a latest_sync_rev field, update it, too
# TODO: tags
note.save()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]