Kenedy-Hernique

Untitled

Jan 14th, 2022
1,090
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const pipeAsync = require('hdnpipes/common/pipe-async')
  2. const condition = require('hdnpipes/common/condition');
  3. const map = require('hdnpipes/common/map')
  4. const { transaction, save } = require('hdnpipes/database/pg-json')
  5. const get = require('lodash.get')
  6.  
  7. /*const tablesToUpdate = {
  8.     tableName: [
  9.         {
  10.             id: String,
  11.             body: Object
  12.         }
  13.     ]
  14. }
  15. [[tableName, [{ id: String, body: Object }]]]
  16. */
  17.  
  18. let updates = []
  19.  
  20.  
  21. module.exports = pipeAsync({
  22.     functions: [
  23.         map(ctx => {
  24.  
  25.             Object.entries(get(ctx, 'tablesToUpdate', {})).forEach((value) => {
  26.                 if (value[1][0].id !== 'idColumnValue' && value[1][0].id !== undefined) {
  27.                     updates.push(save({
  28.                         table: (anotherCtx) => value[0],
  29.                         data: anotherCtx => {
  30.                             return {
  31.                                 id: value[1][0].id,
  32.                                 ...value[1][0].body
  33.                             }
  34.                         },
  35.                         success: (result, ctx) => {
  36.                             console.log(`DEU CERTO NA TABELA ${value[0]}`)
  37.                             return ctx
  38.                         },
  39.                         fail: (err, ctx) => {
  40.                             console.log(err)
  41.                             console.log(`DEU ERRADO NA TABELA ${value[0]}`)
  42.                             return ctx
  43.                         }
  44.                     }))
  45.                 } else {
  46.                     updates.push(save({
  47.                         table: (anotherCtx) => value[0],
  48.                         data: anotherCtx => {
  49.                             return {
  50.                                 ...value[1][0].body
  51.                             }
  52.                         },
  53.                         success: (result, ctx) => {
  54.                             console.log(`DEU CERTO NA TABELA ${value[0]}`)
  55.                             return ctx
  56.                         },
  57.                         fail: (err, ctx) => {
  58.                             console.log(err)
  59.                             console.log(`DEU ERRADO NA TABELA ${value[0]}`)
  60.                             return ctx
  61.                         }
  62.                     }))
  63.                 }
  64.             })
  65.            
  66.             return ctx
  67.         }),
  68.         condition({
  69.             condition: (ctx) => get(ctx, 'poolId') !== undefined,
  70.             isTrue: transaction({
  71.                 poolId: ctx => get(ctx, 'poolId'),
  72.                 functions: updates
  73.             })
  74.         }),
  75.         map(ctx => {
  76.             updates = []
  77.             return ctx
  78.         })
  79.     ]
  80. })
RAW Paste Data