giganet_conecta
Version:
Aplicação com o fim de facilitar conexões com APi's e Banco de Dados (MySql & Mongo).
95 lines (84 loc) • 2.85 kB
JavaScript
const ConnectMysql = require("../Connect Mysql");
// Modelos
const Clientes_Max = require("../Controle de streamings/Models/clientes_max");
const Clientes_Netflix = require("../Controle de streamings/Models/clientes_netflix");
const Contas_Max = require("../Controle de streamings/Models/contas_max");
const Contas_Netflix = require("../Controle de streamings/Models/contas_netflix");
const Gifts_Netflix = require("../Controle de streamings/Models/gifts_netflix");
const Logs = require("../Controle de streamings/Models/logs");
// Views
const Relatorio_Max = require("../Controle de streamings/Views/relatorio_max");
const Relatorio_Netflix = require("../Controle de streamings/Views/relatorio_netflix");
const Contas_Vencerem = require("../Controle de streamings/Views/contas_vencerem");
module.exports = async () => {
const database = "controle_de_streamings";
const name_database = "Controle de streamings";
try {
const {
DB_MYSQL_61_HOST,
DB_MYSQL_61_PORT,
DB_MYSQL_61_USER,
DB_MYSQL_61_PASSWORD,
} = process.env;
const sequelize = await ConnectMysql({
host: DB_MYSQL_61_HOST,
port: DB_MYSQL_61_PORT,
user: DB_MYSQL_61_USER,
password: DB_MYSQL_61_PASSWORD,
database,
name_database,
});
let [
clientes_max,
clientes_netflix,
contas_max,
contas_netflix,
gifts_netflix,
logs,
relatorio_max,
relatorio_netflix,
contas_vencerem,
] = await Promise.all([
Clientes_Max(sequelize),
Clientes_Netflix(sequelize),
Contas_Max(sequelize),
Contas_Netflix(sequelize),
Gifts_Netflix(sequelize),
Logs(sequelize),
Relatorio_Max(sequelize),
Relatorio_Netflix(sequelize),
Contas_Vencerem(sequelize),
]);
clientes_netflix.belongsTo(contas_netflix, { foreignKey: "id_conta", targetKey: "id" });
contas_netflix.hasMany(clientes_netflix,{ foreignKey: "id_conta", targetKey: "id" });
clientes_max.belongsTo(contas_max, {
foreignKey: "id_email",
targetKey: "id_email",
as: "contas_max",
});
contas_max.hasMany(clientes_max, {
foreignKey: "id_email",
sourceKey: "id_email",
as: "clientes_max",
});
const DB_MYSQL_CONTROLE_DE_STREAMINGS = {
clientes_max,
clientes_netflix,
contas_max,
contas_netflix,
gifts_netflix,
logs,
relatorio_max,
relatorio_netflix,
contas_vencerem,
sequelize,
};
module.exports = DB_MYSQL_CONTROLE_DE_STREAMINGS;
} catch (error) {
throw new Error(
`Erro ao conectar ao banco de dados (MySql) ${name_database}: ${
error instanceof Error ? error.message : error
}`
);
}
};