Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/adenilson365/tcc
https://github.com/adenilson365/tcc
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/adenilson365/tcc
- Owner: Adenilson365
- Created: 2024-06-06T17:40:17.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-10-24T00:43:38.000Z (3 months ago)
- Last Synced: 2024-10-28T23:20:54.598Z (3 months ago)
- Language: JavaScript
- Size: 202 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# tcc
### Comandos de migrations e seed:
- **Migration**: Cria as tabelas no banco de dados a partir do modelo.
- **Seed**: Popula essas tabelas com dados preenchidos na seed.- Gerar migrate
```
npx sequelize-cli migration:generate --name migration-name
```
- Criar tabelas no banco de dados a partir das migrations
```
npx sequelize-cli db:migrate
```
- Deletar todas as tabelas no banco de dados a partir das migrations
```
npx sequelize-cli db:migrate:undo:all
```
- Gerar seed
```
npx sequelize-cli seed:generate --name demo-name
```
- Popular tabelas com seeds
```
npx sequelize-cli db:seed:all
```
- desfazer população das tabelas a partir das seeds
```
npx sequelize-cli db:seed:undo:all
```
- Rodar a aplicação
```
npx nodemon index.js
```- Ao criar novo modelo, não esquecer de inserir no index.js, para que haja a conexão
## Funções:
### Filtro de busca no Banco de dados por mês:
```javascript
async getTotalExpenses(req, res) {
try {
const { month } = req.query; // Obtém o mês do parâmetro de consulta (Exemplo: url:/expenses/total?month=2021-01)
const whereClause = { user_id: req.userId };
//Adiciona a condição de mês, se fornecida
//Se não for fornecido um mês, a consulta retornará o total de despesas desde o início da conta
//Formato do mês: yyyy-mm (exemplo: 2021-01 para janeiro de 2021)
// Se não houver despesas no mês fornecido, retorna nullif (month) {
const [year, monthIndex] = month.split('-');
const startDate = new Date(Date.UTC(year, monthIndex - 1, 1)); // Cria a data de início com base no mês
const endDate = new Date(Date.UTC(year, monthIndex, 1)); // Cria a data de fim no próximo mês
whereClause.createdAt = {
[Op.gte]: startDate,
[Op.lt]: endDate,
};
}
const total = await Expense.sum('purchase_value', { where: whereClause });
return res.status(200).json({ totalExpenses: total });
} catch (error) {
console.error('Erro ao calcular o total de despesas:', error);
return res.status(500).json({ message: 'Erro ao obter o total de despesas' });
}
}
```
- A lógica é a mesma para todas as rotas que fazem buscas no banco de dados,
alterando apenas as varáveis.