# HG changeset patch # User ymh # Date 1498233501 -7200 # Node ID 76a4e4b11762c84557e6bf2ab0a397420c934547 # Parent 6f2999873343c5149d9e63e4de88c9b26ce7e763 add server request for note update and delete diff -r 6f2999873343 -r 76a4e4b11762 client/src/actions/notesActions.js --- a/client/src/actions/notesActions.js Fri Jun 23 15:57:35 2017 +0200 +++ b/client/src/actions/notesActions.js Fri Jun 23 17:58:21 2017 +0200 @@ -47,14 +47,42 @@ export const deleteNote = (note) => { return { type: types.DELETE_NOTE, - note + note, + meta: { + offline: { + effect: { + url: `/api/notes/sessions/${note.get('session')}/notes/${note.get('_id')}/`, + method: 'DELETE' + }, + commit: { type: types.NOOP }, + rollback: { type: types.NOOP } + } + } }; } export const updateNote = (note, data) => { + const noteSrvr = { + raw: JSON.stringify(data.raw), + plain: data.plain, + html: data.html, + categorization: JSON.stringify(data.categories), + } + return { type: types.UPDATE_NOTE, note, - data + data, + meta: { + offline: { + effect: { + url: `/api/notes/sessions/${note.get('session')}/notes/${note.get('_id')}/`, + method: 'PUT', + data: noteSrvr + }, + commit: { type: types.NOOP }, + rollback: { type: types.NOOP } + } + } }; } diff -r 6f2999873343 -r 76a4e4b11762 client/src/api/APIClient.js --- a/client/src/api/APIClient.js Fri Jun 23 15:57:35 2017 +0200 +++ b/client/src/api/APIClient.js Fri Jun 23 17:58:21 2017 +0200 @@ -68,7 +68,14 @@ fetch(req) .then((response) => { if (response.ok) { - return response.json().then((data) => resolve(data)); + let resJsonPromise; + if(response.status === 204) { + resJsonPromise = Promise.resolve({}); + } else { + resJsonPromise = response.json(); + } + return resJsonPromise.then((data) => resolve(data)); + } else { return response.json().then((data) => reject(data)); } diff -r 6f2999873343 -r 76a4e4b11762 src/notes/api/serializers/core.py --- a/src/notes/api/serializers/core.py Fri Jun 23 15:57:35 2017 +0200 +++ b/src/notes/api/serializers/core.py Fri Jun 23 17:58:21 2017 +0200 @@ -19,6 +19,16 @@ ) read_only_fields = ('ext_id', 'version', 'created', 'updated') +class UpdateNoteSerializer(serializers.ModelSerializer): + class Meta: + model = Note + fields = ( + 'ext_id', 'version', 'created', 'updated', + 'plain', 'html', 'raw', + 'categorization', 'margin_note', 'tc_start', 'tc_end' + ) + read_only_fields = ('ext_id', 'version', 'created', 'updated', 'tc_start', 'tc_end') + class CreateNoteSerializer(serializers.ModelSerializer): class Meta: model = Note diff -r 6f2999873343 -r 76a4e4b11762 src/notes/api/views/core.py --- a/src/notes/api/views/core.py Fri Jun 23 15:57:35 2017 +0200 +++ b/src/notes/api/views/core.py Fri Jun 23 17:58:21 2017 +0200 @@ -4,7 +4,7 @@ from rest_framework import viewsets from ..permissions import NotePermission, SessionPermission -from ..serializers.core import (DetailNoteSerializer, DetailSessionSerializer, CreateNoteSerializer, +from ..serializers.core import (DetailNoteSerializer, UpdateNoteSerializer, DetailSessionSerializer, CreateNoteSerializer, ListNoteSerializer, ListSessionSerializer, CreateSessionSerializer) logger = logging.getLogger(__name__) @@ -38,7 +38,7 @@ 'list': ListNoteSerializer, 'retrieve': DetailNoteSerializer, 'create': CreateNoteSerializer, - 'update': DetailNoteSerializer, + 'update': UpdateNoteSerializer, } lookup_field = 'ext_id'