All files / middlewares packageValidations.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            3x   3x 1x   2x       2x 1x                 2x   2x 1x         3x   3x 1x   2x       2x 1x                 2x   2x     2x       2x 1x                              
import APIError from '../helpers/error';
import PackagesInformation from '../source/packages/information';
import { t } from '../helpers/i18n';
import ProductBranchInformation from '../source/productBranches/information';
 
async function validCode(req) {
  const code = req.body.code || req.query.code;
 
  if (!code) {
    throw new APIError('', t('BEE3311' /* Código de embalagem obrigatório */));
  } else {
    const existPackage = await PackagesInformation.getPackage({
      code,
    });
 
    if (existPackage) {
      throw new APIError(
        '',
        t('BEE3312' /* Código de embalagem já cadastrado. */)
      );
    }
  }
}
 
async function validPackageName(req) {
  const name = req.body.name || req.query.name;
 
  if (!name) {
    throw new APIError('', t('BEE3313' /* Nome de embalagem obrigatório. */));
  }
}
 
async function validPackageId(req) {
  const packageId = req.body.packageId || req.query.packageId;
 
  if (!packageId) {
    throw new APIError('INVALID_ID', t('BEE3421' /* ID inválido */));
  } else {
    const existPackage = await PackagesInformation.getPackage({
      id: packageId,
    });
 
    if (!existPackage) {
      throw new APIError(
        'NOT_EXIST_ID',
        t('BEE3121', { 0: packageId } /* Embalagem %{0} não localizada! */)
      );
    }
  }
}
 
async function validDeleteHasAssociatedProductBranch(req) {
  const packageId = req.body.packageId || req.query.packageId;
 
  const packageData = await PackagesInformation.getPackage({
    id: packageId,
  });
  const productBranch = await ProductBranchInformation.getProductBranch({
    packageCode: packageData.code,
  });
 
  if (productBranch) {
    throw new APIError(
      '',
      t(
        'BEE4245' /* Não é possível excluir esta embalagem, pois ela está vinculada a outros registros no sistema */
      )
    );
  }
}
 
export default {
  validCode,
  validPackageName,
  validPackageId,
  validDeleteHasAssociatedProductBranch,
};