'use strict';

const keyMirror = require('react/lib/keyMirror');
const service = require('../services');
const debug = require('../utils/DebugConsole')('action:user');

const UserAction = (actionContext, payload) => {
  debug('executeAction %s', payload.actionType, payload);
  switch (payload.actionType) {

    case UserAction.actionTypes.READ_CURRENT_USER:
      return service.user.read(null, payload)
        .then(user => actionContext.dispatch('SET_CURRENT_ACCOUNT', user))
        .catch(reason => actionContext.dispatch('ERROR_OCCURED', reason));

    default:
      return Promise.reject(new Error(`unknown actionType, ${payload.actionType}`));

  }
};

UserAction.actionTypes = keyMirror({
  READ_CURRENT_USER: null
});

module.exports = UserAction;
