Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

adicionando_tarefa_da_semana #4

Open
wants to merge 1 commit into
base: manoela-silva
Choose a base branch
from
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/
1,241 changes: 1,241 additions & 0 deletions package-lock.json

Large diffs are not rendered by default.

15 changes: 15 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"name": "projeto-tarefa",
"version": "1.0.0",
"description": "",
"main": "server.js",
"dependencies": {},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon server.js"
},
"keywords": [],
"author": "",
"license": "ISC"
}
6 changes: 6 additions & 0 deletions server.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
const app = require('./src/app');
const porta = 5000;

app.listen(porta, () => {
console.log("servidor rodando, porta" + porta)
})
8 changes: 8 additions & 0 deletions src/app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const express = require('express');
const app = express();
const postagens = require('./routes/postagens-routes');
app.use(express.json());

app.use('/', postagens);

module.exports = app;
73 changes: 73 additions & 0 deletions src/controllers/postagens-controllers.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
const postagem = require('../models/postagens-models');
const helper = require('../helpers/postagens-helpers');


const visualizarPostagens = (req, res) =>{
res.status(200).send(postagem)
}

const criarPostagem = (req, res) =>{
let {titulo, conteudo, etiquetas} = req.body;
const mySet = new Set (etiquetas);
mySet.has("value1")
let novaPostagem = {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Amei!

id: helper.obterNovoID(postagem),
dataCriacao: helper.novaData(postagem),
titulo: titulo,
conteudo: conteudo,
etiquetas: mySet
}

postagem.push(novaPostagem)
res.status(200).send(novaPostagem)
}
const atualizarPostagem = (req,res) =>{
const {id} = req.params;
//pegando a postagem a ser atualizada através do id
const filtrarPostagem = postagem.filter(tarefa =>{
return tarefa.id ==id;
})[0];
//declarando a chave que será atualizada
const chaves = postagem.indexOf(filtrarPostagem);
//obtendo o corpo para o usuario utilizar
const obterChaves = Object.keys(req.body);
//vai pecorrer as chaves do nosso objeto
obterChaves.forEach(chave => {
filtrarPostagem[chave] = req.body[chave];
});

postagem[chaves] = filtrarPostagem;

res.status(200).json(postagem[chaves]);
}

const atualizarTitulo = (req,res) =>{
const {id} = req.params;
//declarando a chave que será atualizada
const {titulo} = req.body;
//pegando a postagem a ser atualizada através do id
const postagem = postagem.find(postagem => postagem.id ==id)
//atualizando o titulo
postagem.titulo = titulo;

res.status(200).send("Título atualizado");
}

const deletarPostagem = (req,res) =>{
const {id} = req.params;

let postagensFiltradas = postagem.filter( postagem => {
return postagem.id == id;
})[0];
const index = postagem.indexOf(postagensFiltradas);
postagem.splice(index, 1)
res.json(postagem)
}

module.exports = {
visualizarPostagens,
criarPostagem,
deletarPostagem,
atualizarPostagem,
atualizarTitulo
}
15 changes: 15 additions & 0 deletions src/helpers/postagens-helpers.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
const obterNovoID = (array) => {
if (array.length > 0) {
return array[array.length - 1].id + 1
} else {
return 1
}
}

const novaData = () => new Date().toString()


module.exports = {
obterNovoID,
novaData,
}
21 changes: 21 additions & 0 deletions src/models/postagens-models.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
const helper = require('../helpers/postagens-helpers');

const postagem = [
{
id: 1,
dataCriacao: helper.novaData(),
titulo: "partiu",
conteudo: "viagem ao litoral nordestino",
etiquetas:["trip", "ne", "praias"]
},
{
id: 2,
dataCriacao: helper.novaData(),
titulo: "estudar",
conteudo: "estudar programacao com a Reprograma",
etiquetas:["code", "mulheres", "tecnologia"]
}

];

module.exports = postagem;
30 changes: 30 additions & 0 deletions src/routes/postagens-routes.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
const express = require('express');
const postagemController = require('../controllers/postagens-controllers');
const router = express.Router();

//@route GET postagens
//@des criar postagem
//@accs publico
router.get('/postagem', postagemController.visualizarPostagens)

//@route POST postagem
//@desc criar postagem
//@accs publico
router.post('/postagem', postagemController.criarPostagem);

//@route PUT
//@desc atualizar uma postagem
//@accs publico
router.put('/postagem/:id',postagemController.atualizarPostagem);

//@route PATCH
//@desc atualizando o titulo da postagem
//@accs publico
router.patch('/postagem/:id', postagemController.atualizarTitulo)

//@route DELETE
//@desc deletar uma postagem
//@accs publico
router.delete('/postagem/:id', postagemController.deletarPostagem);

module.exports = router;