ViniciusSDSilva

Untitled

Sep 25th, 2020
767
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Adiciona o preço (obrigatório no back da caf)
  2.     payload.price = 0;
  3.     // Limpa as validations (problema com o lista)
  4.     payload.validations =
  5.       payload?.validations?.map(({ action, rule }) => ({
  6.         action,
  7.         rule,
  8.       })) || [];
  9.  
  10.     Object.keys(payload.recurrences).forEach((k) => {
  11.       // Caso tenha periodicidade mas não tenha customData, bota frequency como NONE
  12.       if (
  13.         payload.recurrences[k].frequency !== 'NONE' &&
  14.         !payload.recurrences[k].customData
  15.       ) {
  16.         payload.recurrences[k].frequency = 'NONE';
  17.       }
  18.  
  19.       // Pegando as validações de cada categoria
  20.       const recurrencyValidations = customData
  21.         .filter(({ source }) => payload.recurrences[k].customData?.includes(source)) // pega todos os dados dos customData marcados
  22.         .map(({ relatedRules }) => relatedRules) // extrai todas as relatedRules
  23.         .filter((r) => r) // tira os objetos undefined
  24.         .flat()
  25.         .filter(({ rule }) => payload.validations.map((v) => v.rule).includes(rule)); // verifica se alguma validation do form coincide com a validation do customData
  26.  
  27.       // Remove validações duplicadas
  28.       const uniqueRecurrencyValidations = _.uniqBy(recurrencyValidations, 'rule');
  29.       payload.recurrences[k] = {
  30.         name: `${payload.name} - ${k}`,
  31.         price: 0,
  32.         validations:
  33.           uniqueRecurrencyValidations.length > 0
  34.             ? uniqueRecurrencyValidations
  35.             : undefined,
  36.         ...payload.recurrences[k],
  37.       };
  38.     });
RAW Paste Data