client/src/actions/notesActions.js
author Alexandre Segura <mex.zktk@gmail.com>
Fri, 23 Jun 2017 10:16:49 +0200
changeset 79 772b73e31069
parent 78 49c5ea36d0a4
child 80 b3a02ea6d097
permissions -rw-r--r--
Introduce note editing, allow deleting note.

import uuidV1 from 'uuid/v1';

import * as types from '../constants/actionTypes';

export const addNote = (session, data) => {
  const noteId = uuidV1();
  const note = {
    _id: noteId,
    session: session._id,
    raw: data.raw,
    plain: data.plain,
    html: data.html,
    startedAt: data.startedAt,
    finishedAt: data.finishedAt,
    categories: data.categories,
    marginComment: data.marginComment,
  };

  const noteSrvr = {
    ext_id: noteId,
    session: session._id,
    raw: JSON.stringify(data.raw),
    plain: data.plain,
    html: data.html,
    tc_start: data.startedAt,
    tc_end: data.finishedAt,
    categorization: JSON.stringify(data.categories),
  }

  return {
    type: types.ADD_NOTE,
    note,
    meta: {
      offline: {
        effect: {
          url: `/api/notes/sessions/${session.get('_id')}/notes/`,
          method: 'POST',
          data: noteSrvr
        },
        commit: { type: types.NOOP },
        rollback: { type: types.NOOP }
      }
    }
  };
}

export const deleteNote = (note) => {
  return {
    type: types.DELETE_NOTE,
    note
  };
}