All files / middlewares timeTrackingReasonValidations.js

100% Statements 20/20
100% Branches 20/20
100% Functions 4/4
100% Lines 20/20

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              3x   3x 1x   2x       2x 1x                           3x   3x 1x   2x       2x 1x                 2x   2x 1x         2x   2x       2x       2x 1x                                    
import APIError from '../helpers/error';
import { t } from '../helpers/i18n';
 
import TimeTrackingReasonInfo from '../source/timeTrackingReason/information';
import UserTimeTrackingInfo from '../source/userTimeTracking/information';
 
async function validReasonId(req) {
  const reasonId = req.body.reasonId || req.query.reasonId;
 
  if (!reasonId) {
    throw new APIError('INVALID_ID', t('BEE3421' /* ID inválido */));
  } else {
    const existReason = await TimeTrackingReasonInfo.getTimeTrackingReason({
      id: reasonId,
    });
 
    if (!existReason) {
      throw new APIError(
        '',
        t(
          'BEE4290',
          {
            0: reasonId,
          } /* Motivo de finalização do apontamento %{0} não encontrado */
        )
      );
    }
  }
}
 
async function validCode(req) {
  const code = req.body.code || req.query.code;
 
  if (!code) {
    throw new APIError('INVALID_CODE');
  } else {
    const existReason = await TimeTrackingReasonInfo.getTimeTrackingReason({
      code,
    });
 
    if (existReason) {
      throw new APIError(
        '',
        t('BEE1173', { 0: code } /* Codigo %{0} já cadastrado  */)
      );
    }
  }
}
 
function validName(req) {
  const name = req.body.name || req.query.name;
 
  if (!name) {
    throw new APIError('', t('BEE2812' /* Descrição deve ser informada ! */));
  }
}
 
async function validDelete(req) {
  const reasonId = req.body.reasonId || req.query.reasonId;
 
  const reasonData = await TimeTrackingReasonInfo.getTimeTrackingReason({
    id: reasonId,
  });
 
  const userTimeTracking = await UserTimeTrackingInfo.getUserTimeTracking({
    trackingReasonCode: reasonData.code,
  });
 
  if (userTimeTracking) {
    throw new APIError(
      '',
      t(
        'BEE4291',
        {
          0: reasonData.code,
        } /* O motivo de finalização do apontamento %{0} não pode ser excluído, pois está sendo utilizado. */
      )
    );
  }
}
 
export default {
  validReasonId,
  validCode,
  validName,
  validDelete,
};