diff --git a/source/lib_jurnalarpay.ts b/source/lib_jurnalarpay.ts new file mode 100644 index 0000000..7324418 --- /dev/null +++ b/source/lib_jurnalarpay.ts @@ -0,0 +1,43 @@ +import axios from "axios"; +import config from "./config/config"; +import logging from "./config/logging"; +import { NAME_SPACE } from "./server"; + +export const getJurnalArPay = async (date: string) => { + const url = `${config.base_url}mockup/accounting/injectjurnalarpayment/getJurnalArPayment/${date}`; + logging.info(NAME_SPACE, `\t INFO : ${url}`); + + try { + const resp = await axios.get(url, { + responseType: "arraybuffer", + }); + const jresp = JSON.parse(resp.data.toString()); + return jresp; + } catch (e) { + if (axios.isAxiosError(e)) { + logging.error(NAME_SPACE, e.response?.data.toString()); + } else if (e instanceof Error) { + logging.error(NAME_SPACE, e.message); + } + } +}; + +export const injectJurnalArPay = async (prm: any) => { + const url = `${config.base_url}mockup/accounting/injectjurnalarpayment/inject`; + logging.info(NAME_SPACE, `\t INFO : ${url}`); + + try { + const resp = await axios.post(url, prm, { + headers: { "Content-Type": "application/json; charset=UTF-8" }, + responseType: "arraybuffer", + }); + const jresp = JSON.parse(resp.data.toString()); + return jresp; + } catch (e) { + if (axios.isAxiosError(e)) { + logging.error(NAME_SPACE, e.response?.data.toString()); + } else if (e instanceof Error) { + logging.error(NAME_SPACE, e.message); + } + } +}; diff --git a/source/server.ts b/source/server.ts index 3421270..bd49fd9 100644 --- a/source/server.ts +++ b/source/server.ts @@ -4,6 +4,7 @@ import * as Xcron from "node-cron"; import { getJurnal, injectJurnalTx } from "./lib_jurnaltx"; import { getJurnalAr, injectJurnalAr } from "./lib_jurnalar"; +import { getJurnalArPay, injectJurnalArPay } from "./lib_jurnalarpay"; import axios from "axios"; export const NAME_SPACE = "Point Member Gateway"; @@ -18,6 +19,7 @@ const on_init = async () => { await jurnalTxJob(); await jurnalArJob(); + await jurnalArPayJob(); logging.info(NAME_SPACE, "On Init End"); }; @@ -34,7 +36,7 @@ async function jurnalTxJob() { // UPLOAD logging.info(NAME_SPACE, "Start Get Jurnal Tx"); // 2024 - 09 - 17; - var respJurnal = await getJurnal(""); + var respJurnal = await getJurnal("2024-09-07"); if (respJurnal["status"] != "OK") { logging.error(NAME_SPACE, "\t Error", respJurnal); } else { @@ -94,7 +96,7 @@ async function jurnalArJob() { // UPLOAD logging.info(NAME_SPACE, "Start Get Jurnal AR"); // 2024 - 09 - 17; - var respJurnal = await getJurnalAr(""); + var respJurnal = await getJurnalAr("2024-09-07"); if (respJurnal["status"] != "OK") { logging.error(NAME_SPACE, "\t Error", respJurnal); } else { @@ -141,6 +143,64 @@ async function jurnalArJob() { } } } +async function jurnalArPayJob() { + if (isRunning) { + logging.info(NAME_SPACE, "Still Running"); + return; + } + isRunning = true; + try { + logging.info(NAME_SPACE, "Starting Job Jurnal AR Pay" + VERSION); + // UPLOAD + logging.info(NAME_SPACE, "Start Get Jurnal AR Pay"); + // 2024 - 09 - 17; + var respJurnal = await getJurnalArPay("2024-09-07"); + if (respJurnal["status"] != "OK") { + logging.error(NAME_SPACE, "\t Error", respJurnal); + } else { + logging.info(NAME_SPACE, "\t Success Get Jurnal AR Pay"); + } + logging.info(NAME_SPACE, "\t wait 1s"); + if (respJurnal["data"].length === 0) { + logging.info(NAME_SPACE, "\t Tidak ada jurnal"); + } else { + for (let i = 0; i < respJurnal["data"].length; i++) { + const e = respJurnal["data"][i]; + e.jurnalID = respJurnal["jurnalID"]; + logging.info( + NAME_SPACE, + "Start Insert Jurnal AR Pay, JURNAL ID :" + + respJurnal["jurnalID"].toString() + ); + var respInsert = await injectJurnalArPay(e); + if (respInsert["status"] != "OK") { + logging.error(NAME_SPACE, "\t Error", respInsert); + } else { + logging.info(NAME_SPACE, "\t " + respInsert["data"]); + } + //Sleep + logging.info(NAME_SPACE, "\t wait 1s"); + logging.info( + NAME_SPACE, + "End Insert Jurnal AR Pay, JURNAL ID :" + + respJurnal["jurnalID"].toString() + ); + await delay(1000); + } + } + + logging.info(NAME_SPACE, "End Job Jurnal AR Pay"); + + isRunning = false; + } catch (e) { + isRunning = false; + if (e instanceof Error) { + logging.error(NAME_SPACE, e.message); + } else { + logging.error(NAME_SPACE, "Unknown"); + } + } +} // console.log(config); for (const sched of config.schedule) { Xcron.schedule( @@ -148,6 +208,7 @@ for (const sched of config.schedule) { async () => { await jurnalTxJob(); await jurnalArJob(); + await jurnalArPayJob(); }, { timezone: "Asia/Jakarta",