including:
- remove batch_size di config-gw-wa.json
- merge function, bedakan dengan message_type
149 lines
4.4 KiB
TypeScript
149 lines
4.4 KiB
TypeScript
import axios from "axios";
|
|
import config from "./config/config";
|
|
import logging from "./config/logging";
|
|
import { NAME_SPACE } from "./server";
|
|
|
|
type MessageType = "mcu" | "payment";
|
|
|
|
export const getListOutbox = async (
|
|
messageType: MessageType,
|
|
statusOutbox: string,
|
|
startDate: string,
|
|
endDate: string
|
|
) => {
|
|
const url =
|
|
config.base_url + config.messageTypes[messageType].endpoints.listOutbox;
|
|
logging.info(
|
|
NAME_SPACE,
|
|
`\t INFO [${config.messageTypes[messageType].name}]: ${url}`
|
|
);
|
|
logging.info(NAME_SPACE, "\t INFO Status Outbox: " + statusOutbox);
|
|
|
|
try {
|
|
const resp = await axios.post(
|
|
url,
|
|
{ statusOutbox, startDate, endDate },
|
|
{
|
|
headers: { "Content-Type": "application/json; charset=UTF-8" },
|
|
responseType: "text",
|
|
}
|
|
);
|
|
return typeof resp.data === "string"
|
|
? JSON.parse(resp.data)
|
|
: resp.data;
|
|
} catch (e) {
|
|
handleAxiosError(e, messageType);
|
|
}
|
|
};
|
|
|
|
export const sendToQontak = async (messageType: MessageType, param: any) => {
|
|
const url =
|
|
config.base_url + config.messageTypes[messageType].endpoints.sendMsg;
|
|
logging.info(
|
|
NAME_SPACE,
|
|
`\t INFO [${config.messageTypes[messageType].name}]: ${url}`
|
|
);
|
|
logging.info(NAME_SPACE, "\t INFO Payload: " + JSON.stringify(param));
|
|
|
|
try {
|
|
const resp = await axios.post(url, param, {
|
|
headers: { "Content-Type": "application/json; charset=UTF-8" },
|
|
responseType: "text",
|
|
});
|
|
const statusResp = resp.data.status;
|
|
|
|
logging.info(
|
|
NAME_SPACE,
|
|
`\t INFO Resp [${
|
|
config.messageTypes[messageType].name
|
|
}]: ${JSON.stringify(statusResp)}`
|
|
);
|
|
if (statusResp != "OK") {
|
|
logging.error(
|
|
NAME_SPACE,
|
|
`\t Error [${
|
|
config.messageTypes[messageType].name
|
|
}]: ${JSON.stringify(resp.data)}`
|
|
);
|
|
}
|
|
return statusResp;
|
|
} catch (e) {
|
|
handleAxiosError(e, messageType);
|
|
}
|
|
};
|
|
|
|
export const uploadFileCdn = async (messageType: MessageType, param: any) => {
|
|
const url =
|
|
config.base_url + config.messageTypes[messageType].endpoints.uploadFile;
|
|
logging.info(
|
|
NAME_SPACE,
|
|
`\t INFO [${config.messageTypes[messageType].name}]: ${url}`
|
|
);
|
|
logging.info(NAME_SPACE, "\t INFO Payload: " + JSON.stringify(param));
|
|
|
|
try {
|
|
const resp = await axios.post(url, param, {
|
|
headers: { "Content-Type": "application/json; charset=UTF-8" },
|
|
responseType: "text",
|
|
});
|
|
const statusResp = resp.data.status;
|
|
|
|
logging.info(
|
|
NAME_SPACE,
|
|
`\t INFO Resp Upload [${
|
|
config.messageTypes[messageType].name
|
|
}]: ${JSON.stringify(statusResp)}`
|
|
);
|
|
return statusResp;
|
|
} catch (e) {
|
|
handleAxiosError(e, messageType);
|
|
}
|
|
};
|
|
|
|
export const changeStatusOutbox = async (
|
|
messageType: MessageType,
|
|
param: any
|
|
) => {
|
|
const url =
|
|
config.base_url +
|
|
config.messageTypes[messageType].endpoints.changeStatus;
|
|
logging.info(
|
|
NAME_SPACE,
|
|
`\t INFO [${config.messageTypes[messageType].name}]: ${url}`
|
|
);
|
|
logging.info(NAME_SPACE, "\t INFO Payload: " + JSON.stringify(param));
|
|
|
|
try {
|
|
const resp = await axios.post(url, param, {
|
|
headers: { "Content-Type": "application/json; charset=UTF-8" },
|
|
responseType: "text",
|
|
});
|
|
const statusResp = resp.data.status;
|
|
|
|
logging.info(
|
|
NAME_SPACE,
|
|
`\t INFO Resp Change Status [${
|
|
config.messageTypes[messageType].name
|
|
}]: ${JSON.stringify(statusResp)}`
|
|
);
|
|
return statusResp;
|
|
} catch (e) {
|
|
handleAxiosError(e, messageType);
|
|
}
|
|
};
|
|
|
|
function handleAxiosError(e: any, messageType: MessageType) {
|
|
if (axios.isAxiosError(e)) {
|
|
logging.error(
|
|
NAME_SPACE,
|
|
`Error [${config.messageTypes[messageType].name}] - Axios Error`
|
|
);
|
|
logging.error(NAME_SPACE, e.response?.data?.toString());
|
|
} else if (e instanceof Error) {
|
|
logging.error(
|
|
NAME_SPACE,
|
|
`Error [${config.messageTypes[messageType].name}] - ${e.message}`
|
|
);
|
|
}
|
|
}
|