All files / framework/src/api/db/dao/user UserDAO.js

84.62% Statements 11/13
100% Branches 2/2
80% Functions 4/5
83.33% Lines 10/12
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 301x 1x 1x 1x                 13x   13x 12x       2x 2x               1x  
const BasicDAO = require('../BasicDAO');
const UserModel = require('../../model/user/UserModel');
const { Errors } = require('../../../../constants');
const debug = require('../../../../log')('UserDAO');
 
/**
 * UserDAO - BasicDAO implementation for @link[UserModel] entity
 * @augments BasicDAO
 */
class UserDAO extends BasicDAO {
    create(data, context) {
        // const user = UserModel.fromJson(data);
        const user = data;
        // TODO generate password and salt
        delete user.rawPassword;
        return super.create(user, context);
    }
 
    isEmailAvailable(email, context) {
        return this.getModel().makeQuery(trx =>
            this.createQuery(trx, context).where('email', email).then(user => !user || !user[0]))
            .catch(err => {
                debug('IsEmailAvailable', err.message);
                throw new Error(Errors.GetByFieldFailed('UserDAO'));
            });
    }
}
 
module.exports = new UserDAO(UserModel);