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
4 changes: 4 additions & 0 deletions .env.local
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
user=tdfdb_frg4_user
host=dpg-cjvi8615mpss73b6nuv0-a.oregon-postgres.render.com
database=tdfdb_frg4
password=yLrlA2j3glQuT2u4k2P4YoUuCF4z56vk'
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
node_modules/
.env.local/
File renamed without changes.
4 changes: 4 additions & 0 deletions docs/codigosUsadosNaEnv.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
user: ''
host: ''
database: ''
password: ''
7 changes: 5 additions & 2 deletions src/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@ const express = require('express');
const app = express();
const depoimentoRoutes = require('./routes/depoimento-route');
const contatosRoutes = require('./routes/contato-route');
const oportunidadesRoutes = require('./routes/oportunidades-route');

app.use(express.urlencoded({extended: true}));
app.use(express.urlencoded({ extended: true }));
app.use(express.json());

// Habilita o CORS
app.use(function (req, res, next) {
app.use(function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, x-access-token, *');
res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
Expand All @@ -16,4 +17,6 @@ app.use(function (req, res, next) {

app.use('/api/depoimentos', depoimentoRoutes);
app.use('/api/contatos', contatosRoutes);
app.use('/api/oportunidades', oportunidadesRoutes);

module.exports = app;
5 changes: 2 additions & 3 deletions src/controllers/depoimento-controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ exports.post = async (req, res) => {
}
exports.delete = async (req, res) => {
try {
const conteudo = req.body;
const resultItem = await depoimentoRepository.excluirDepoimento(conteudo.id);
const resultItem = await depoimentoRepository.excluirDepoimento(req.params.id);
res.status(202).json({ data: resultItem});
} catch (error) {
console.error(error);
Expand All @@ -37,7 +36,7 @@ exports.delete = async (req, res) => {
exports.put = async(req, res) => {
try {
var conteudo = req.body;
var resultItem = await depoimentoRepository.atualizarDepoimento(conteudo.depoimento, conteudo.id);
var resultItem = await depoimentoRepository.atualizarDepoimento(req.body.depoimento, req.params.id);
res.status(203).json({ data: resultItem});
} catch (error) {
console.error(error);
Expand Down
58 changes: 58 additions & 0 deletions src/controllers/oportunidades-controller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
const { Server } = require('http');
var oportunidadesRepository = require('../repositories/oportunidades-repository');

exports.post = async(req, res) => {
try {
const conteudo = req.body;
delete conteudo.id;

const resultItem = await oportunidadesRepository.criarOportunidade(conteudo.nome, conteudo.empresa, conteudo.nivel, conteudo.faixa_salarial_de, conteudo.faixa_salarial_ate, conteudo.regime);
res.status(201).json({ message: 'Oportunidade criada!.', data: resultItem });

} catch (error) {
console.error(error);
res.status(500).json({ error: 'Ocorreu um erro ao criar a Oportunidade.' });
}
};

exports.get = async(req, res) => {
try {
const resultSelect = await oportunidadesRepository.obterOportunidades();
res.status(200).send({ message: 'Oportunidade obtida!.', data: resultSelect.rows });
} catch (error) {
console.error(error);
res.status(500).json({ error: 'Ocorreu um erro ao consultar a oportunidade.' });
}
};

exports.put = async(req, res) => {
try {
var conteudo = req.body;
if (!conteudo.id || !Number.isInteger(conteudo.id)) {
return res.status(400).json({ error: 'O campo id deve ser um número inteiro.' });
}

var resultItem = await oportunidadesRepository.atualizarOportunidade(
conteudo.id, conteudo.nome, conteudo.empresa, conteudo.nivel,
conteudo.faixa_salarial_de, conteudo.faixa_salarial_ate, conteudo.regime);
res.status(203).json({ message: 'Oportunidade atualizada!.', data: resultItem });
} catch (error) {
console.error(error);
res.status(500).json({ error: 'Ocorreu um erro ao atualizar a oportunidade.' });
}
};

exports.delete = async(req, res) => {
try {
const conteudo = req.body;
if (!conteudo.id || !Number.isInteger(conteudo.id)) {
return res.status(400).json({ error: 'O campo id deve ser um número inteiro.' });
}

const resultItem = await oportunidadesRepository.excluirOportunidade(conteudo.id);
res.status(202).json({ message: 'Oportunidade excuida!.', data: resultItem });
} catch (error) {
console.error(error);
res.status(500).json({ error: 'Ocorreu um erro ao excluir a Oportunidade.' });
}
};
46 changes: 46 additions & 0 deletions src/repositories/oportunidades-repository.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
const clientBase = require('../db/db');

exports.criarOportunidade = async(nome, empresa, nivel, faixa_salarial_de, faixa_salarial_ate, regime) => {
try {
return clientBase.query(`INSERT INTO oportunidades (nome, empresa, nivel, faixa_salarial_de, faixa_salarial_ate, regime) values ($1, $2, $3, $4, $5, $6) RETURNING id;`, [nome, empresa, nivel, faixa_salarial_de, faixa_salarial_ate, regime]);
} catch (error) {
console.error(error);
res.status(400).json({ error: 'Ocorreu um erro ao inserir a oportunidade no DB.' });
throw error;
}
};

exports.obterOportunidades = async() => {
try {
return clientBase.query(`SELECT * FROM oportunidades ORDER BY id`);
} catch (error) {
console.error(error);
throw error;
}
};

exports.atualizarOportunidade = async(
id, nome, empresa, nivel, faixa_salarial_de, faixa_salarial_ate, regime) => {
try {
return clientBase.query(`UPDATE oportunidades
SET nome = $1,
empresa = $2,
nivel = $3,
faixa_salarial_de = $4,
faixa_salarial_ate = $5,
regime = $6
WHERE id = $7`, [nome, empresa, nivel, faixa_salarial_de, faixa_salarial_ate, regime, id]);
} catch (error) {
console.error(error);
res.status(400).json({ error: 'Ocorreu um erro ao atualizar a oportunidade no DB.' });
}
};

exports.excluirOportunidade = async(id) => {
try {
return clientBase.query(`DELETE FROM oportunidades WHERE id = $1`, [id]);
} catch (error) {
console.error(error);
res.status(400).json({ error: 'Ocorreu um erro ao excluir a oportunidade no DB.' });
}
};
4 changes: 2 additions & 2 deletions src/routes/depoimento-route.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ const depoimentoController = require('../controllers/depoimento-controller');

router.get('', depoimentoController.get);
router.post('', depoimentoController.post);
router.delete('', depoimentoController.delete);
router.put('', depoimentoController.put);
router.delete('/:id', depoimentoController.delete);
router.put('/:id', depoimentoController.put);

module.exports = router;

10 changes: 10 additions & 0 deletions src/routes/oportunidades-route.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const express = require('express');
const router = express.Router();
const oportunidadesController = require('../controllers/oportunidades-controller');

router.get('/get', oportunidadesController.get);
router.post('/post', oportunidadesController.post);
router.delete('/delete', oportunidadesController.delete);
router.put('/put', oportunidadesController.put);

module.exports = router;