method/isUser.js

/**
 * @module method/isUser
 */

const getUserMeta = require('./get');

const {has} = require('lodash');

/**
 * Check if a Firebase ID has been assigned before
 *
 * @requires method/get
 *
 * @param  {object} user - User object
 * @param  {string} user.uid - Firebase User ID, e.g. hk_wx5555556.
 *
 * @return {(string|boolean)} Returns boolean,
 * otherwise returns 'locked' if failCount is larger than 5.
 */
const isUser = (user) => {
  return getUserMeta(user).then((userMeta) => {
    if (has(userMeta, 'failCount') && userMeta.failCount >= 5) {
      return 'locked';
    } else {
      return true;
    }
  }).catch((error) => {
    return false;
  });
};

module.exports = isUser;