import _ from 'lodash';
import {
  ATTRIBUTES,
} from '../constants';
import {
  BadRequest,
  NotAuthorized,
} from '../libs/errors';
import i18n from '../i18n';

module.exports = function allocate (user, req = {}) {
  let stat = _.get(req, 'query.stat', 'str');

  if (ATTRIBUTES.indexOf(stat) === -1) {
    throw new BadRequest(i18n.t('invalidAttribute', {attr: stat}, req.language));
  }

  if (user.stats.points > 0) {
    user.stats[stat]++;
    user.stats.points--;
    if (stat === 'int') {
      user.stats.mp++;
    }
  } else {
    throw new NotAuthorized(i18n.t('notEnoughAttrPoints', req.language));
  }

  return [
    user.stats,
  ];
};
