All files / middlewares productGroupingValidations.js

100% Statements 21/21
100% Branches 16/16
100% Functions 3/3
100% Lines 21/21

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              9x   9x 3x     6x         6x   6x 4x         2x   2x 1x         10x   10x 2x     8x 4x           4x       4x 1x       4x   4x 2x                  
/* eslint-disable no-unused-expressions */
import { Op } from 'sequelize';
import APIError from '../helpers/error';
import { t } from '../helpers/i18n';
import ProductsGroupingInformation from '../source/productsGrouping/information';
 
async function validCode(req) {
  const { code } = req.body;
 
  if (!code) {
    throw new APIError('', t('BEE4025' /* O código deve ser informado */));
  }
 
  const query = {
    code,
  };
 
  const existProductGrouping =
    await ProductsGroupingInformation.getProductGrouping(query);
 
  if (existProductGrouping) {
    throw new APIError('', t('BEE3574' /* Código já cadastrado. */));
  }
}
 
async function validName(req) {
  const { name } = req.body;
 
  if (!name) {
    throw new APIError('', t('BEE4190' /* O nome deve ser informado. */));
  }
}
 
async function validSequence(req) {
  const { sequence, productGroupingId } = req.body;
 
  if (!sequence) {
    throw new APIError('', t('BEE3865' /* Informe a sequência */));
  }
 
  if (sequence > 999 || sequence <= 0) {
    throw new APIError(
      '',
      t('BEE4039' /* Sequência deve ser um valor numérico entre 1 e 999 */)
    );
  }
 
  const query = {
    sequence,
  };
 
  if (productGroupingId) {
    query.id = { [Op.ne]: productGroupingId };
  }
 
  const existProductGrouping =
    await ProductsGroupingInformation.getProductGrouping(query);
 
  if (existProductGrouping) {
    throw new APIError('', t('BEE4038' /* Sequência já cadastrada. */));
  }
}
 
export default {
  validCode,
  validSequence,
  validName,
};