All files / services/totvs cancelInboundIntegration.js

100% Statements 19/19
81.25% Branches 13/16
100% Functions 1/1
100% Lines 19/19

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            5x 5x 4x   4x                     4x           2x 1x                   1x     1x       1x     2x   2x   2x 1x 1x 1x     2x             2x     1x            
import isJson from '../../helpers/validators/totvs';
import IntegrationQueueErp from '../../source/integrationQueueErp/queue';
import RestService from './rest';
import { t } from '../../helpers/i18n';
 
async function sendCancelInboundIntegration(queue, userId) {
  try {
    if (queue && queue.body) {
      const inboundOrder = JSON.parse(queue.body);
 
      const json = {
        cancelOrders: [
          {
            serie: inboundOrder.serie || '',
            orderNumber: inboundOrder.orderNumber,
            supplierCode: inboundOrder.supplierCode,
            branchCode: inboundOrder.branchCode,
          },
        ],
      };
 
      const result = await RestService.requestRest(
        inboundOrder.branchCode,
        json,
        'cancelInboundOrder'
      );
 
      if (isJson(result.data)) {
        await IntegrationQueueErp.updateIntegrationQueue(queue.id, {
          response: JSON.stringify(result.data),
          status: result.status,
          message:
            result.status === 200
              ? t('BEE4142' /* Integração cancelada com sucesso! */)
              : result.data.retorno,
          updatedUser: userId,
        });
 
        return true;
      }
 
      await IntegrationQueueErp.updateIntegrationQueue(queue.id, {
        message: t('BEE4144' /* Erro ao cancelar a integração */),
        updatedUser: userId,
      });
      return false;
    }
  } catch (error) {
    const integrated = error.message.includes('já integrado');
 
    let status = 998;
 
    if (error.response) {
      status = error.response.status;
    } else Eif (integrated) {
      status = 200;
    }
 
    await IntegrationQueueErp.updateIntegrationQueue(queue.id, {
      response: error.response ? error.response.data : '',
      status,
      message: error.message,
      updatedUser: userId,
    });
 
    return error;
  }
 
  return null;
}
 
export default {
  sendCancelInboundIntegration,
};