diff -r 1f340f3597a8 -r ea92f4fe783d client/src/sagas/NoteSyncronizer.js --- a/client/src/sagas/NoteSyncronizer.js Tue Oct 09 19:07:47 2018 +0200 +++ b/client/src/sagas/NoteSyncronizer.js Mon Oct 08 18:35:47 2018 +0200 @@ -2,19 +2,19 @@ import { getCreatedNotes, getUpdatedNotes, getDeletedNotes } from '../selectors/coreSelectors'; import NoteRecord from '../store/noteRecord'; import { doDeleteNote, loadNote, resetActionNote } from '../actions/notesActions'; -import Immutable from 'immutable'; import SyncMixin from './BaseSyncronizer'; import WebAnnotationSerializer from '../api/WebAnnotationSerializer'; +import * as R from 'ramda'; + class NoteSyncBase { - // local diffs (immutable) * getLocalDiffs() { - return Immutable.Map({ + return { created: yield select(getCreatedNotes), updated: yield select(getUpdatedNotes), deleted: yield select(getDeletedNotes) - }) + } } // remote urls @@ -23,36 +23,36 @@ } getRemoteDeleteUrl(localObjInst) { - return `/api/notes/sessions/${localObjInst.get('session')}/notes/${localObjInst.get('_id')}/`; + return `/api/notes/sessions/${R.prop('session',localObjInst)}/notes/${R.prop('_id',localObjInst)}/`; } getRemoteCreateUrl(localObjInst) { - return `/api/notes/sessions/${localObjInst.get('session')}/notes/`; + return `/api/notes/sessions/${R.prop('session',localObjInst)}/notes/`; } getRemoteUpdateUrl(localObjInst) { - return `/api/notes/sessions/${localObjInst.get('session')}/notes/${localObjInst.get('_id')}/`; + return `/api/notes/sessions/${R.prop('session',localObjInst)}/notes/${R.prop('_id',localObjInst)}/`; } // build remote json message getRemoteData(localObjInst) { return { - ext_id: localObjInst.get('_id'), - session: localObjInst.get('session'), - raw: JSON.stringify(localObjInst.get('raw')), - plain: localObjInst.get('plain'), - html: localObjInst.get('html'), - tc_start: localObjInst.get('startedAt'), - tc_end: localObjInst.get('finishedAt'), + ext_id: R.prop('_id',localObjInst), + session: R.prop('session',localObjInst), + raw: JSON.stringify(R.prop('raw',localObjInst)), + plain: R.prop('plain',localObjInst), + html: R.prop('html',localObjInst), + tc_start: R.prop('startedAt',localObjInst), + tc_end: R.prop('finishedAt',localObjInst), categorization: JSON.stringify(WebAnnotationSerializer.serialize(localObjInst)), - margin_note: localObjInst.get('marginComment'), + margin_note: R.prop('marginComment',localObjInst), } } getLocalRecord(remoteObj) { - return new NoteRecord({ + return NoteRecord({ _id: remoteObj.ext_id, session: remoteObj.session, raw: JSON.parse(remoteObj.raw),