Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 62 additions & 49 deletions src/herbarium/herbariumdatabase.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,31 +47,20 @@ export function selectCodBarra() {
}

/**
* A função criaTabelaReflora, cria uma tabela chamada reflora,
* com base no modelo que foi chamado e dentro desse modelo,
* existe nome das colunas que estarão presentes nessa tabela.
* Nessa tabela é guardado os códigos de barras, e as respostas das requisições.
* Detalhe force: true é igual ao drop table.
* @return tabelaReflora, que é a tabela que foi criada.
*/
export function criaTabelaReflora() {
* A função pegaTabelaReflora retorna o modelo da tabela specieslink existente no banco de dados.
* @return TabelaReflora, que é o modelo da tabela existente.
*/
export function pegaTabelaReflora() {
const tabelaReflora = modeloReflora(conexao, Sequelize);
tabelaReflora.sync({ force: true });
// tabelaReflora.removeAttribute('id');
return tabelaReflora;
}

/**
* A função criaTabelaSpecieslink, cria uma tabela chamada reflora,
* com base no modelo que foi chamado e dentro desse modelo,
* existe nome das colunas que estarão presentes nessa tabela.
* Nessa tabela é guardado os códigos de barras, e as respostas das requisições.
* Detalhe force: true é igual ao drop table.
* @return tabelaSpecieslink, que é a tabela que foi criada.
* A função pegaTabelaSpecieslink retorna o modelo da tabela specieslink existente no banco de dados.
* @return tabelaSpecieslink, que é o modelo da tabela existente.
*/
export function criaTabelaSpecieslink() {
export function pegaTabelaSpecieslink() {
const tabelaSpecieslink = modeloSpecieslink(conexao, Sequelize);
tabelaSpecieslink.sync({ force: true });
return tabelaSpecieslink;
}

Expand Down Expand Up @@ -797,68 +786,92 @@ export function insereAlteracaoSugerida(idUsuario, statusAlteracao, idTombo, tom
}

/**
* A função existeTabelaReflora, executa um SHOW TABLES verificando
* se existe a tabela do reflora ou não. Se existir a tabela do reflora
* retorna true, e caso não exista false.
* A função verificaSeTemDadosReflora verifica se a tabela Reflora possui algum dado.
* Retorna true se houver registros e false caso contrário.
* @return promessa.promise, como é assíncrono ele só retorna quando resolver, ou seja,
* quando terminar de realizar a consulta de verificar se existe ou não a tabela.
* quando terminar de realizar a consulta.
*/
export function existeTabelaReflora() {
export function verificaSeTemDadosReflora() {
const promessa = Q.defer();
conexao.query('SHOW TABLES', { type: Sequelize.QueryTypes.SHOWTABLES }).then(listaTabelas => {
listaTabelas.forEach(tabelas => {
if (tabelas === 'reflora') {
const tabelaReflora = modeloReflora(conexao, Sequelize);

tabelaReflora.count()
.then(count => {
if (count > 0) {
promessa.resolve(true);
} else {
promessa.resolve(false);
}
})
.catch(error => {
promessa.reject(error);
});
promessa.resolve(false);
});

return promessa.promise;
}

/**
* A função existeTabelaReflora, executa um SHOW TABLES verificando
* se existe a tabela do reflora ou não. Se existir a tabela do reflora
* retorna true, e caso não exista false.
* A função verificaSeTemDadosSpecieslink verifica se a tabela specieslink possui algum dado.
* Retorna true se houver registros e false caso contrário.
* @return promessa.promise, como é assíncrono ele só retorna quando resolver, ou seja,
* quando terminar de realizar a consulta de verificar se existe ou não a tabela.
* quando terminar de realizar a consulta.
*/
export function existeTabelaSpecieslink() {
export function verificaSeTemDadosSpecieslink() {
const promessa = Q.defer();
conexao.query('SHOW TABLES', { type: Sequelize.QueryTypes.SHOWTABLES }).then(listaTabelas => {
listaTabelas.forEach(tabelas => {
if (tabelas === 'specieslink') {
const tabelaSpecieslink = modeloSpecieslink(conexao, Sequelize);

tabelaSpecieslink.count()
.then(count => {
if (count > 0) {
promessa.resolve(true);
} else {
promessa.resolve(false);
}
})
.catch(error => {
promessa.reject(error);
});
promessa.resolve(false);
});

return promessa.promise;
}

/**
* A função apagaTabelaReflora, executa um DROP TABLE, ou seja,
* apagar uma tabela que no caso é a tabela do reflora.
* A função limpaTabelaReflora remove todos os dados da tabela reflora sem apagar sua estrutura.
* @return promessa.promise, como é assíncrono ele só retorna quando resolver, ou seja,
* quando terminar de apagar a tabela.
* quando terminar de limpar a tabela.
*/
export function apagaTabelaReflora() {
export function limpaTabelaReflora() {
const promessa = Q.defer();
const tabelaReflora = modeloReflora(conexao, Sequelize);
promessa.resolve(tabelaReflora.drop());

tabelaReflora.truncate()
.then(() => {
promessa.resolve();
})
.catch(error => {
promessa.reject(error);
});

return promessa.promise;
}

/**
* A função apagaTabelaSpecieslink, executa um DROP TABLE, ou seja,
* apagar uma tabela que no caso é a tabela do specieslink.
* A função limpaTabelaSpecieslink remove todos os dados da tabela Specieslink sem apagar sua estrutura.
* @return promessa.promise, como é assíncrono ele só retorna quando resolver, ou seja,
* quando terminar de apagar a tabela.
* quando terminar de limpar a tabela.
*/
export function apagaTabelaSpecieslink() {
export function limpaTabelaSpecieslink() {
const promessa = Q.defer();
const tabelaSpecieslink = modeloSpecieslink(conexao, Sequelize);
promessa.resolve(tabelaSpecieslink.drop());
const TabelaSpecieslink = modeloSpecieslink(conexao, Sequelize);

TabelaSpecieslink.truncate()
.then(() => {
promessa.resolve();
})
.catch(error => {
promessa.reject(error);
});

return promessa.promise;
}

Expand Down
24 changes: 12 additions & 12 deletions src/herbarium/main.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import Q from 'q';

import {
existeTabelaReflora,
existeTabelaSpecieslink,
verificaSeTemDadosReflora,
verificaSeTemDadosSpecieslink,
atualizaFimTabelaConfiguracao,
criaTabelaSpecieslink,
criaTabelaReflora,
apagaTabelaReflora,
apagaTabelaSpecieslink,
pegaTabelaSpecieslink,
pegaTabelaReflora,
limpaTabelaReflora,
limpaTabelaSpecieslink,
insereTabelaReflora,
insereTabelaSpecieslink,
selectCodBarra,
Expand Down Expand Up @@ -40,7 +40,7 @@ function comecaAtualizacao(nomeArquivo, idServico) {
const promessa = Q.defer();
if (idServico === 1) {
escreveLOG(`reflora/${nomeArquivo}`, 'Inicializando a aplicação do Reflora.');
const tabelaReflora = criaTabelaReflora();
const tabelaReflora = pegaTabelaReflora();
selectCodBarra().then(listaCodBarra => {
// insereTabelaReflora(tabelaReflora, listaCodBarra.slice(0, 1)).then(() => {
insereTabelaReflora(tabelaReflora, geraListaAleatorio(listaCodBarra, 0)).then(() => {
Expand All @@ -49,7 +49,7 @@ function comecaAtualizacao(nomeArquivo, idServico) {
fazComparacaoTomboReflora().then(resultadoComparacao => {
if (resultadoComparacao) {
escreveLOG(`reflora/${nomeArquivo}`, 'O processo de comparação do Reflora acabou.');
apagaTabelaReflora().then(() => {
limpaTabelaReflora().then(() => {
promessa.resolve();
});
}
Expand All @@ -60,7 +60,7 @@ function comecaAtualizacao(nomeArquivo, idServico) {
});
} else if (idServico === 2) {
escreveLOG(`specieslink/${nomeArquivo}`, 'Inicializando a aplicação do Specieslink.');
const tabelaSpecieslink = criaTabelaSpecieslink();
const tabelaSpecieslink = pegaTabelaSpecieslink();
selectCodBarra().then(listaCodBarra => {
// insereTabelaSpecieslink(tabelaSpecieslink, listaCodBarra.slice(0, 1)).then(() => {
insereTabelaSpecieslink(tabelaSpecieslink, geraListaAleatorio(listaCodBarra, 0)).then(() => {
Expand All @@ -69,7 +69,7 @@ function comecaAtualizacao(nomeArquivo, idServico) {
fazComparacaoTomboSpecieslink().then(resultadoComparacao => {
if (resultadoComparacao) {
escreveLOG(`specieslink/${nomeArquivo}`, 'O processo de comparação do SpeciesLink acabou.');
apagaTabelaSpecieslink().then(() => {
limpaTabelaSpecieslink().then(() => {
promessa.resolve();
});
}
Expand Down Expand Up @@ -97,7 +97,7 @@ function comecaAtualizacao(nomeArquivo, idServico) {
function ehPossivelFazerComparacao(nomeArquivo, idServico) {
const promessa = Q.defer();
if (idServico === 1) {
existeTabelaReflora().then(existe => {
verificaSeTemDadosReflora().then(existe => {
if (existe) {
promessa.resolve();
} else {
Expand All @@ -107,7 +107,7 @@ function ehPossivelFazerComparacao(nomeArquivo, idServico) {
}
});
} else if (idServico === 2) {
existeTabelaSpecieslink().then(existe => {
verificaSeTemDadosSpecieslink().then(existe => {
if (existe) {
promessa.resolve();
} else {
Expand Down
Loading