All files / middlewares unitMeasureValidations.js

100% Statements 22/22
100% Branches 18/18
100% Functions 6/6
100% Lines 22/22

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            2x   2x 1x               2x   2x 1x         2x   2x   2x 1x               2x   2x 1x               2x   2x       2x 1x               2x   2x       2x       2x 1x                                  
import APIError from '../helpers/error';
import { t } from '../helpers/i18n';
import UnitMeasureInformation from '../source/unitsMeasure/information';
import ProductInformation from '../source/products/information';
 
async function validCode(req) {
  const { code } = req.body;
 
  if (!code) {
    throw new APIError(
      '',
      t('BEE1303' /* Unidade de medida deve ser informada */)
    );
  }
}
 
async function validUnitMeasureName(req) {
  const { name } = req.body;
 
  if (!name) {
    throw new APIError('', t('BEE2812' /* Descrição deve ser informada ! */));
  }
}
 
async function validUnitMeasureExists(req) {
  const { code } = req.body;
 
  const unitMeasure = await UnitMeasureInformation.getUnitMeasure({ code });
 
  if (unitMeasure) {
    throw new APIError(
      '',
      t('BEE3258' /* Unidade de medida já foi cadastrada */)
    );
  }
}
 
async function validUnitMeasureId(req) {
  const unitMeasureId = req.body.unitMeasureId || req.query.unitMeasureId;
 
  if (!unitMeasureId) {
    throw new APIError(
      '',
      t('BEE3147' /* Unidade de Medida não localizada! */)
    );
  }
}
 
async function validUnitMeasureIdExists(req) {
  const unitMeasureId = req.body.unitMeasureId || req.query.unitMeasureId;
 
  const unitMeasure = await UnitMeasureInformation.getUnitMeasure({
    id: unitMeasureId,
  });
 
  if (!unitMeasure) {
    throw new APIError(
      '',
      t('BEE3147' /* Unidade de Medida não localizada! */)
    );
  }
}
 
async function validDeleteHasAssociatedProduct(req) {
  const unitMeasureId = req.body.unitMeasureId || req.query.unitMeasureId;
 
  const unitMeasure = await UnitMeasureInformation.getUnitMeasure({
    id: unitMeasureId,
  });
 
  const existProduct = await ProductInformation.getProduct({
    unitMeasure: unitMeasure.code,
  });
 
  if (existProduct) {
    throw new APIError(
      '',
      t(
        'BEE4250' /* Não é possível excluir esta unidade de medida, pois ela está vinculada a outros registros no sistema */
      )
    );
  }
}
 
export default {
  validCode,
  validUnitMeasureName,
  validUnitMeasureExists,
  validUnitMeasureId,
  validUnitMeasureIdExists,
  validDeleteHasAssociatedProduct,
};