floriday/floriday.js

73 lines
1.8 KiB
JavaScript
Raw Normal View History

2023-05-15 12:19:43 +00:00
import { checkConn, closeConn } from './models/sequelize.js';
import * as utils from './utils.js';
import moment from 'moment';
2023-04-06 08:56:52 +00:00
import chalk from 'chalk';
// Añade la hora a todos los console.log
2023-05-09 09:59:21 +00:00
console.log = (...args) => console.info(chalk.gray(`[${new moment().format('YYYY-MM-DD hh:mm:ss A')}]`), ...args);
const env = process.env;
class Floriday {
2023-04-24 10:46:06 +00:00
async start() {
try {
2023-05-08 10:18:14 +00:00
await utils.checkConfig();
2023-05-15 12:19:43 +00:00
await utils.requestToken();
if (JSON.parse(env.SYNC_SEQUENCE)) await utils.syncSequence();
2023-04-24 10:46:06 +00:00
if (JSON.parse(env.SYNC_SUPPLIER)) await utils.syncSuppliers();
2023-05-16 08:24:04 +00:00
if (JSON.parse(env.SYNC_WAREHOUSE)) await utils.syncWarehouses();
if (JSON.parse(env.SYNC_CONN)) await utils.syncConnections();
2023-04-24 10:46:06 +00:00
if (JSON.parse(env.SYNC_TRADEITEM)) await utils.syncTradeItems();
} catch (err) {
utils.criticalError(err);
}
}
2023-04-24 10:46:06 +00:00
async tryConn() {
try {
utils.sleep(env.DB_TIMEOUT_RECONECT);
await checkConn();
await this.schedule();
}
catch (err) {
throw new Error(err);
}
}
2023-04-06 08:56:52 +00:00
2023-04-24 10:46:06 +00:00
async schedule () {
try {
const intervalTime = JSON.parse(env.IS_PRODUCTION)
? env.MS_PRODUCTION_SCHEDULE
: env.MS_TEST_SCHEDULE;
2023-05-15 12:19:43 +00:00
this.continueSchedule = true;
while (this.continueSchedule) {
2023-04-24 10:46:06 +00:00
try {
await this.trunk();
2023-05-09 09:59:21 +00:00
await new Promise(resolve => setTimeout(resolve, intervalTime));
} catch (err) {
2023-04-24 10:46:06 +00:00
await this.tryConn();
2023-05-09 09:59:21 +00:00
await new Promise(resolve => setTimeout(resolve, intervalTime));
2023-04-24 10:46:06 +00:00
}
2023-05-09 09:59:21 +00:00
}
2023-04-24 10:46:06 +00:00
} catch (err) {
throw new Error(err);
}
}
2023-04-06 08:56:52 +00:00
2023-04-24 10:46:06 +00:00
async trunk() {
try{
await utils.syncSupplyLines();
2023-04-06 08:56:52 +00:00
2023-04-24 10:46:06 +00:00
// Continuar con todo lo que haga falta realizar en la rutina
2023-04-06 08:56:52 +00:00
2023-04-24 10:46:06 +00:00
} catch (err) {
utils.criticalError(err);
2023-04-24 10:46:06 +00:00
}
}
2023-04-24 10:46:06 +00:00
async stop() {
2023-05-15 12:19:43 +00:00
this.continueSchedule = false;
2023-04-24 10:46:06 +00:00
await closeConn();
console.warn(chalk.dim('Bye, come back soon 👋'))
2023-04-24 10:46:06 +00:00
}
}
export default Floriday;