Skip to content
Open
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/node_modules
File renamed without changes.
24 changes: 24 additions & 0 deletions READMEE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# pokemon---node

Projeto tambem publicado no npm, para baixar use o comando "npm install heitor_moura".
e não esqueça de copiar os arquivos para raiz, se baixou pelo npm, siga a partir do
segundo passo (o segundo passo é feito só para garantir que a lib do knex esta instalada)



para executar esse projeto, siga as instruções do arquivo README

Antes de rodar o projeto, crie uma base de dados com o nome "pokemon" no mysql

Para executar o projeto, rode os comandos a seguir no console na pasta do projeto;

npm install \\ comando para instalar as dependencias do projeto

npm install knex -g \\ comando para instalar o knex de forma global

knex migrate:latest \\ comando para criar as tabelas na base de dados. obs:ele ira procurar a
\\ base no mysql na porta padrão (3306), caso deseje alterar, altere o
\\ aquivo "knexfile.js"

knex seed:run \\ esse comando ira inserir 50 registros no banco. obs: as inserções estão
\\ no aqruivo "pokemon.js" na pasta "seeds"
71 changes: 71 additions & 0 deletions controllers/pokemon.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
const config = require("../knexfile");
const knex = require('knex')(config);
const paginate = require('express-paginate');

exports.insertPokemon = (req, res, next) => {
knex('pokemon').insert(req.body.pokemon)
.then(response => res.json({ response }))
.catch(error => res.status(404).json({ error }))
}

exports.updatePokemon = (req, res, next) => {
knex('pokemon').where('pokedex', '=', req.body.pokemon.pokedex)
.update(req.body.pokemon)
.then(response => res.json({ response }))
.catch(error => res.status(404).json({ error }))
}

exports.getAllPokemons = (req, res, next) => {
const filters = req.body.filters;
var limit = req.query.limit || 10;
var skip = req.query.page && req.query.page == 1 ? 0 : (req.query.page - 1) * limit;

let query = knex('pokemon').count('pokedex as count');

if (filters) {
Object.keys(filters).forEach(key => {
if (filters[key]) {
if (typeof filters[key] == 'string') {
query.toString().includes('where') ? query.where(key, 'like', `%${filters[key]}%`) : query.andWhere(key, 'like', `%${filters[key]}%`);
} else {
query.toString().includes('where') ? query.where(key, '=', filters[key]) : query.andWhere(key, '=', filters[key]);
}
}
})
}

query.then(response => {
const itemCount = response[0].count;
let query = knex.select('*').from('pokemon')

if (filters) {

Object.keys(filters).forEach(key => {
if (filters[key]) {
if (typeof filters[key] == 'string') {
query.toString().includes('where') ? query.where(key, 'like', `%${filters[key]}%`) : query.andWhere(key, 'like', `%${filters[key]}%`);
} else {
query.toString().includes('where') ? query.where(key, '=', filters[key]) : query.andWhere(key, '=', filters[key]);
}
}
})
}

query.limit(limit).offset(skip).then(pokemons => {
const pageCount = Math.ceil(itemCount / limit);
data = {
pokemon: pokemons,
pageCount: pageCount,
itemCount: itemCount,
pages: null
}
data.pages = paginate.getArrayPages(req)(itemCount, data.pageCount, req.query.page);
res.json(data);
}).catch(error => res.status(404).json(error));
}).catch(error => res.status(404).json(error));
};

exports.getall = (req, res) => {
knex().from('pokemon')
.then(x => res.json({ x }))
}
7,016 changes: 7,016 additions & 0 deletions dist/pokemon/es2015-polyfills.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions dist/pokemon/es2015-polyfills.js.map

Large diffs are not rendered by default.

14 changes: 14 additions & 0 deletions dist/pokemon/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Pokemon</title>
<base href="/">

<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="https://image.flaticon.com/icons/png/128/188/188918.png">
</head>
<body>
<app-root></app-root>
<script type="text/javascript" src="runtime.js"></script><script type="text/javascript" src="es2015-polyfills.js" nomodule></script><script type="text/javascript" src="polyfills.js"></script><script type="text/javascript" src="styles.js"></script><script type="text/javascript" src="scripts.js"></script><script type="text/javascript" src="vendor.js"></script><script type="text/javascript" src="main.js"></script></body>
</html>
658 changes: 658 additions & 0 deletions dist/pokemon/main.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions dist/pokemon/main.js.map

Large diffs are not rendered by default.

Loading