All files / source/users update.js

100% Statements 17/17
100% Branches 0/0
100% Functions 5/5
100% Lines 17/17

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107              2x 2x                                         1x   1x         2x 2x                   1x         2x 2x                   1x         2x 2x 2x                 1x         2x 2x                   1x                      
import moment from 'moment-timezone';
 
import APIError from '../../helpers/error';
import UserDao from '../../database/dao/user';
import { passwordSHA256 } from '../../helpers/validators/password';
 
async function updateUser(userId, user) {
  try {
    const updUser = await UserDao.updateUser(
      {
        id: userId,
      },
      {
        email: user.email,
        name: user.name,
        type: user.type,
        department: user.department,
        workShift: user.workShift,
        accessProfile: user.accessProfile,
        userFunction: user.userFunction,
        printer: user.printer,
        mainBranch: user.mainBranch,
        userBranches: user.userBranches.toString(),
        updatedUser: user.updatedUser,
        attempt: user.attempt,
        lastDateLogged: user.lastDateLogged,
        updatedAt: moment().format(),
      }
    );
    return updUser;
  } catch (error) {
    throw new APIError('', error);
  }
}
 
async function updateStatus(userId, status, updatedUser) {
  try {
    return UserDao.updateUser(
      { id: userId },
      {
        status,
        updatedUser,
        lastDateLogged: moment().format(),
        updatedAt: moment().format(),
      }
    );
  } catch (error) {
    throw new APIError('', error);
  }
}
 
async function updatePassword(userId, newPassword, updatedUser, passValid) {
  try {
    return UserDao.updateUser(
      { id: userId },
      {
        password: passwordSHA256(newPassword),
        passValid,
        updatedUser,
        updatedAt: moment().format(),
      }
    );
  } catch (error) {
    throw new APIError('', error);
  }
}
 
async function updateValidPassword(userId, newValidPassword, updatedUser) {
  try {
    const valid = new Date(newValidPassword);
    return UserDao.updateUser(
      { id: userId },
      {
        passValid: moment(valid).format(),
        updatedUser,
        updatedAt: moment().format(),
      }
    );
  } catch (error) {
    throw new APIError('', error);
  }
}
 
async function updateAttempt(userId, user) {
  try {
    return UserDao.updateUser(
      { id: userId },
      {
        attempt: user.attempt,
        lastDateLogged: user.lastDateLogged,
        updatedUser: userId,
        updatedAt: moment().format(),
      }
    );
  } catch (error) {
    throw new APIError('', error);
  }
}
 
export default {
  updateAttempt,
  updateUser,
  updateStatus,
  updatePassword,
  updateValidPassword,
};