Advertisement
Sam1D

fetchData.lib

Mar 20th, 2020
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // CONFIG
  2. const baseUrl = 'http://10.162.71.75:8385/Perbaikan'
  3. const limitData = 7
  4.  
  5. // RAW DATA
  6. const dataSelected = ['10', '11', '12', '13', '14', '3', '4']
  7. const rawData = {
  8.   status: true,
  9.   message: 'Status Success',
  10.   Output_Td_Perubahan: {
  11.     idPerubahan: '22912fdf-88a0-424c-bb87-233c2f8b8247',
  12.     idHeader: 'TPB_10000833',
  13.     seri: 4,
  14.     idProsesStatus: '820cd8c4-9fa6-4f8e-8fd9-da5bdb6ab62a',
  15.     waktuRekam: null,
  16.     nipApproval: null,
  17.     waktuApproval: null,
  18.     flagApproval: null,
  19.     nomorAju: '05044000075120181029008954',
  20.     perubahanDetailList: null,
  21.   },
  22.   Jumlah_Data: {
  23.     status: false,
  24.     page: 1,
  25.     results: 7,
  26.     totalResults: 10,
  27.     totalPage: 2,
  28.   },
  29.   Daftar_Elemen_Diperbaiki: [
  30.     {
  31.       idPerubahanDetail: '10',
  32.       idPerubahan: '22912fdf-88a0-424c-bb87-233c2f8b8247',
  33.       statusData: 'I',
  34.       namaTable: 'KONTAINER',
  35.       namaKey: 'ID_KONTAINER',
  36.       nilaiKey: '333',
  37.       flagApproval: null,
  38.       waktuRekam: null,
  39.       idPerubahanDetailField: '10',
  40.       namaField: 'ID_KONTAINER',
  41.       dataLama: null,
  42.       dataBaru: null,
  43.       waktuApproval: null,
  44.       nipApproval: null,
  45.     },
  46.     {
  47.       idPerubahanDetail: '11',
  48.       idPerubahan: '22912fdf-88a0-424c-bb87-233c2f8b8247',
  49.       statusData: 'I',
  50.       namaTable: 'KONTAINER',
  51.       namaKey: 'ID_KONTAINER',
  52.       nilaiKey: '444',
  53.       flagApproval: null,
  54.       waktuRekam: null,
  55.       idPerubahanDetailField: '11',
  56.       namaField: 'ID_KONTAINER',
  57.       dataLama: null,
  58.       dataBaru: null,
  59.       waktuApproval: null,
  60.       nipApproval: null,
  61.     },
  62.     {
  63.       idPerubahanDetail: '12',
  64.       idPerubahan: '22912fdf-88a0-424c-bb87-233c2f8b8247',
  65.       statusData: 'I',
  66.       namaTable: 'KONTAINER',
  67.       namaKey: 'ID_KONTAINER',
  68.       nilaiKey: '555',
  69.       flagApproval: null,
  70.       waktuRekam: null,
  71.       idPerubahanDetailField: '12',
  72.       namaField: 'ID_KONTAINER',
  73.       dataLama: null,
  74.       dataBaru: null,
  75.       waktuApproval: null,
  76.       nipApproval: null,
  77.     },
  78.     {
  79.       idPerubahanDetail: '13',
  80.       idPerubahan: '22912fdf-88a0-424c-bb87-233c2f8b8247',
  81.       statusData: 'I',
  82.       namaTable: 'KONTAINER',
  83.       namaKey: 'ID_KONTAINER',
  84.       nilaiKey: '666',
  85.       flagApproval: null,
  86.       waktuRekam: null,
  87.       idPerubahanDetailField: '13',
  88.       namaField: 'ID_KONTAINER',
  89.       dataLama: null,
  90.       dataBaru: null,
  91.       waktuApproval: null,
  92.       nipApproval: null,
  93.     },
  94.     {
  95.       idPerubahanDetail: '14',
  96.       idPerubahan: '22912fdf-88a0-424c-bb87-233c2f8b8247',
  97.       statusData: 'I',
  98.       namaTable: 'KONTAINER',
  99.       namaKey: 'ID_KONTAINER',
  100.       nilaiKey: '777',
  101.       flagApproval: null,
  102.       waktuRekam: null,
  103.       idPerubahanDetailField: '14',
  104.       namaField: 'ID_KONTAINER',
  105.       dataLama: null,
  106.       dataBaru: null,
  107.       waktuApproval: null,
  108.       nipApproval: null,
  109.     },
  110.     {
  111.       idPerubahanDetail: '3',
  112.       idPerubahan: '22912fdf-88a0-424c-bb87-233c2f8b8247',
  113.       statusData: 'U',
  114.       namaTable: 'BARANG',
  115.       namaKey: 'ID_BARANG',
  116.       nilaiKey: 'TPB_11372342_15',
  117.       flagApproval: null,
  118.       waktuRekam: null,
  119.       idPerubahanDetailField: '3',
  120.       namaField: 'KODE_BARANG',
  121.       dataLama: 'EFGS435345',
  122.       dataBaru: 'DEUC654646',
  123.       waktuApproval: null,
  124.       nipApproval: null,
  125.     },
  126.     {
  127.       idPerubahanDetail: '4',
  128.       idPerubahan: '22912fdf-88a0-424c-bb87-233c2f8b8247',
  129.       statusData: 'D',
  130.       namaTable: 'KEMASAN',
  131.       namaKey: 'ID_KEMASAN',
  132.       nilaiKey: '123',
  133.       flagApproval: null,
  134.       waktuRekam: null,
  135.       idPerubahanDetailField: '4',
  136.       namaField: 'ID_KEMASAN',
  137.       dataLama: null,
  138.       dataBaru: null,
  139.       waktuApproval: null,
  140.       nipApproval: null,
  141.     },
  142.   ],
  143. }
  144.  
  145. // lOGIC
  146. const urlBuilder_Logic = data => {
  147.   let url = ''
  148.   let firstPos = true
  149.  
  150.   for (let i = 0; i < Object.keys(data).length; i++) {
  151.     if (Object.values(data)[i].toString() !== '') {
  152.       let slice = []
  153.       let urlFix = ''
  154.  
  155.       if (isNaN(Object.values(data)[i]) === true) {
  156.         slice = Object.values(data)[i].split(' ')
  157.  
  158.         for (let j = 0; j < slice.length; j++) {
  159.           if (j !== slice.length - 1) {
  160.             urlFix += slice[j] + '%20'
  161.           } else {
  162.             urlFix += slice[j]
  163.           }
  164.         }
  165.       }
  166.  
  167.       if (firstPos === true) {
  168.         if (slice.length > 0) {
  169.           url += `?${Object.keys(data)[i]}=${urlFix}`
  170.         } else {
  171.           url += `?${Object.keys(data)[i]}=${Object.values(data)[i]}`
  172.         }
  173.  
  174.         firstPos = false
  175.       } else {
  176.         if (slice.length > 0) {
  177.           url += `&${Object.keys(data)[i]}=${urlFix}`
  178.         } else {
  179.           url += `&${Object.keys(data)[i]}=${Object.values(data)[i]}`
  180.         }
  181.       }
  182.     }
  183.   }
  184.  
  185.   return url
  186. }
  187.  
  188. const API_PD_003 = (idHeader, parameter) => {
  189.   let url = `${baseUrl}/perbaikan/komparasi-elemen-data/${idHeader}`
  190.   parameter.limit = limitData
  191.   parameter.results = limitData
  192.  
  193.   url += urlBuilder_Logic(parameter)
  194.  
  195.   return url
  196. }
  197.  
  198. const API_PD_004 = (
  199.   flagApproval,
  200.   idHeader,
  201.   idPerubahan,
  202.   idProsesStatus,
  203.   nipApproval,
  204.   seri,
  205.   data
  206. ) => {
  207.   let postData = []
  208.  
  209.   if (flagApproval === 'Y' || flagApproval === 'N') {
  210.     postData.push({
  211.       flagApproval,
  212.       idHeader,
  213.       idPerubahan,
  214.       idProsesStatus,
  215.       nipApproval,
  216.       seri,
  217.     })
  218.   } else {
  219.     const postDataFormatter = (i, totalData) => {
  220.       if (i < totalData) {
  221.         postData.push({
  222.           flagApproval,
  223.           idHeader,
  224.           idPerubahan,
  225.           idPerubahanDetailField: data[i],
  226.           idProsesStatus,
  227.           nipApproval,
  228.           seri,
  229.         })
  230.         postDataFormatter(i + 1, totalData)
  231.       } else {
  232.         return null
  233.       }
  234.     }
  235.  
  236.     postDataFormatter(0, dataSelected.length)
  237.   }
  238.  
  239.   return postData
  240. }
  241.  
  242. const result = API_PD_004(
  243.   'P',
  244.   rawData.Output_Td_Perubahan.idHeader,
  245.   rawData.Output_Td_Perubahan.idPerubahan,
  246.   rawData.Output_Td_Perubahan.idProsesStatus,
  247.   '4913119',
  248.   rawData.Output_Td_Perubahan.seri,
  249.   dataSelected
  250. )
  251. console.log(result)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement