migrated import contacts controller to typescript

This commit is contained in:
canove
2020-09-22 11:09:52 -03:00
parent 9bab61c7dc
commit 0d8b4cd60c
7 changed files with 131 additions and 126 deletions

View File

@@ -0,0 +1,28 @@
import AppError from "../../errors/AppError";
import GetDefaultWhatsApp from "../../helpers/GetDefaultWhatsApp";
import { getWbot } from "../../libs/wbot";
import Contact from "../../models/Contact";
const ImportContactsService = async (): Promise<void> => {
const defaultWhatsapp = await GetDefaultWhatsApp();
const wbot = getWbot(defaultWhatsapp.id);
let phoneContacts;
try {
phoneContacts = await wbot.getContacts();
} catch (err) {
throw new AppError(
"Could not check whatsapp contact. Check connection page."
);
}
await Promise.all(
phoneContacts.map(async ({ number, name }) => {
await Contact.create({ number, name });
})
);
};
export default ImportContactsService;

View File

@@ -1,86 +0,0 @@
const Sentry = require("@sentry/node");
const wbotMessageListener = require("./wbotMessageListener");
const { getIO } = require("../libs/socket");
const { getWbot, initWbot } = require("../libs/wbot");
const wbotMonitor = whatsapp => {
const io = getIO();
const sessionName = whatsapp.name;
const wbot = getWbot(whatsapp.id);
try {
wbot.on("change_state", async newState => {
console.log("Monitor session:", sessionName, newState);
try {
await whatsapp.update({ status: newState });
} catch (err) {
Sentry.captureException(err);
console.log(err);
}
io.emit("session", {
action: "update",
session: whatsapp,
});
});
wbot.on("change_battery", async batteryInfo => {
const { battery, plugged } = batteryInfo;
console.log(
`Battery session: ${sessionName} ${battery}% - Charging? ${plugged}`
);
try {
await whatsapp.update({ battery, plugged });
} catch (err) {
Sentry.captureException(err);
console.log(err);
}
io.emit("session", {
action: "update",
session: whatsapp,
});
});
wbot.on("disconnected", async reason => {
console.log("Disconnected session:", sessionName, reason);
try {
await whatsapp.update({ status: "disconnected" });
} catch (err) {
Sentry.captureException(err);
console.log(err);
}
io.emit("session", {
action: "update",
session: whatsapp,
});
setTimeout(
() =>
initWbot(whatsapp)
.then(() => {
wbotMessageListener(whatsapp);
wbotMonitor(whatsapp);
})
.catch(err => {
Sentry.captureException(err);
console.log(err);
}),
2000
);
});
// setInterval(() => {
// wbot.resetState();
// }, 20000);
} catch (err) {
Sentry.captureException(err);
console.log(err);
}
};
module.exports = wbotMonitor;

View File

@@ -0,0 +1,87 @@
import * as Sentry from "@sentry/node";
import wbotMessageListener from "./wbotMessageListener";
import { getIO } from "../../libs/socket";
import { getWbot, initWbot } from "../../libs/wbot";
import Whatsapp from "../../models/Whatsapp";
const wbotMonitor = (whatsapp: Whatsapp): void => {
const io = getIO();
const sessionName = whatsapp.name;
const wbot = getWbot(whatsapp.id);
try {
wbot.on("change_state", async newState => {
console.log("Monitor session:", sessionName, newState);
try {
await whatsapp.update({ status: newState });
} catch (err) {
Sentry.captureException(err);
console.log(err);
}
io.emit("session", {
action: "update",
session: whatsapp
});
});
wbot.on("change_battery", async batteryInfo => {
const { battery, plugged } = batteryInfo;
console.log(
`Battery session: ${sessionName} ${battery}% - Charging? ${plugged}`
);
try {
await whatsapp.update({ battery, plugged });
} catch (err) {
Sentry.captureException(err);
console.log(err);
}
io.emit("session", {
action: "update",
session: whatsapp
});
});
wbot.on("disconnected", async reason => {
console.log("Disconnected session:", sessionName, reason);
try {
await whatsapp.update({ status: "disconnected" });
} catch (err) {
Sentry.captureException(err);
console.log(err);
}
io.emit("session", {
action: "update",
session: whatsapp
});
setTimeout(
() =>
initWbot(whatsapp)
.then(() => {
wbotMessageListener(whatsapp);
wbotMonitor(whatsapp);
})
.catch(err => {
Sentry.captureException(err);
console.log(err);
}),
2000
);
});
// setInterval(() => {
// wbot.resetState();
// }, 20000);
} catch (err) {
Sentry.captureException(err);
console.log(err);
}
};
export default wbotMonitor;