client/src/actions/sessionsActions.js
author Alexandre Segura <mex.zktk@gmail.com>
Wed, 28 Jun 2017 14:44:02 +0200
changeset 104 d48a74232d22
parent 101 e165aa89ac82
child 124 c77570164050
permissions -rw-r--r--
Go back to homepage on logout.

import { now } from '../utils';
import * as types from '../constants/actionTypes';

export const createSession = (sessionId) => {

  const newSession = {
      _id: sessionId,
      ext_id: sessionId,
      date: now(),
      title: '',
      description: '',
  };

  return {
    type: types.CREATE_SESSION,
    session: newSession,
    meta: {
      offline: {
        effect: {
          url: `/api/notes/sessions/`,
          method: 'POST',
          data: newSession
        },
        commit: { type: types.NOOP },
        rollback: { type: types.NOOP }
      }
    }
  };
}

export const updateSession = (session, values) => {
  return {
    type: types.UPDATE_SESSION,
    session: session,
    values: values,
    meta: {
      offline: {
        effect: {
          url: `/api/notes/sessions/${session.get('_id')}/`,
          method: 'PUT',
          data: values
        },
        commit: { type: types.NOOP },
        rollback: { type: types.NOOP }
      }
    }
  };
}

export const deleteSession = (session) => {
  return {
    type: types.DELETE_SESSION,
    session: session,
    meta: {
      offline: {
        effect: {
          url: `/api/notes/sessions/${session.get('_id')}/`,
          method: 'DELETE',
        },
        commit: { type: types.NOOP },
        rollback: { type: types.NOOP }
      }
    }
  };
}

export const loadSessions = () => {
  return {
    type: types.LOAD_SESSIONS
  }
}

export const createGroupAndUpdateSession = (session, name) => {
  const group = {
    name
  };

  return {
    type: types.GROUP_CREATE_AND_UPDATE_ASYNC,
    session,
    group,
  };
}