diff --git a/servidor-paraolar/reprogramaflix/package-lock.json b/servidor-paraolar/reprogramaflix/package-lock.json index aa51754..35cbaf4 100644 --- a/servidor-paraolar/reprogramaflix/package-lock.json +++ b/servidor-paraolar/reprogramaflix/package-lock.json @@ -287,6 +287,15 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, "crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", @@ -791,6 +800,11 @@ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", diff --git a/servidor-paraolar/reprogramaflix/package.json b/servidor-paraolar/reprogramaflix/package.json index 2c1200a..20fe98b 100644 --- a/servidor-paraolar/reprogramaflix/package.json +++ b/servidor-paraolar/reprogramaflix/package.json @@ -1,7 +1,6 @@ { "name": "reprogramaflix", "version": "1.0.0", - "description": "", "main": "server.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", @@ -11,7 +10,9 @@ "author": "", "license": "ISC", "dependencies": { + "cors": "^2.8.5", "express": "^4.17.1", "nodemon": "^2.0.7" - } + }, + "description": "" } diff --git a/servidor-paraolar/reprogramaflix/server.js b/servidor-paraolar/reprogramaflix/server.js index ae1f313..8957240 100644 --- a/servidor-paraolar/reprogramaflix/server.js +++ b/servidor-paraolar/reprogramaflix/server.js @@ -1,5 +1,5 @@ const app = require("./src/app") -app.listen(8080, ()=>{ - console.log("Uhuuul nova iguaçu na porta 8080") +app.listen(8090, ()=>{ + console.log("Servidor rodando na porta 8090") }) \ No newline at end of file diff --git a/servidor-paraolar/reprogramaflix/src/app.js b/servidor-paraolar/reprogramaflix/src/app.js index 846d237..b5f4a8b 100644 --- a/servidor-paraolar/reprogramaflix/src/app.js +++ b/servidor-paraolar/reprogramaflix/src/app.js @@ -1,5 +1,9 @@ const express = require("express") //chama o express const app = express() //executar express +const cors = require("cors") + +app.use(cors()) +app.use(express.json()) //parsear const filmes = require("./routes/filmesRoutes") //chamando todas as rotas diff --git a/servidor-paraolar/reprogramaflix/src/controllers/filmesController.js b/servidor-paraolar/reprogramaflix/src/controllers/filmesController.js index 87c1be3..054c805 100644 --- a/servidor-paraolar/reprogramaflix/src/controllers/filmesController.js +++ b/servidor-paraolar/reprogramaflix/src/controllers/filmesController.js @@ -1,44 +1,45 @@ const filmes = require("../models/filmes.json") //chamar nosso json -const getAll = (request, response)=>{ //criar função getAll +//GET +const getAll = (request, response) => { //criar função getAll response.status(200).send(filmes) } -const getById = (request, response)=>{ +const getById = (request, response) => { const idRequerido = request.params.id let idFiltrado = filmes.find(filme => filme.id == idRequerido) - if(idFiltrado == undefined || idRequerido == " "){ + if (idFiltrado == undefined || idRequerido == " ") { response.status(404).json([{ - "mensagem":"id não existente" + "mensagem": "id não existente" }]) - }else{ - response.status(200).json(idFiltrado) - } + } else { + response.status(200).json(idFiltrado) + } } -const getByTitle = (request, response)=>{ +const getByTitle = (request, response) => { const titulo = request.query.titulo.toLowerCase() const filmeFiltrado = filmes.find(filme => filme.Title.toLowerCase().includes(titulo)) - if(titulo == "" || filmeFiltrado == undefined){ + if (titulo == "" || filmeFiltrado == undefined) { response.status(400).json([{ - "mensagem":"por favor, digite um titulo válido" + "mensagem": "por favor, digite um titulo válido" }]) } else { response.status(200).send(filmeFiltrado) } } -const getByGenre = (request, response)=>{ +const getByGenre = (request, response) => { const generoRequisitado = request.query.genero - let novaLista =[] - - filmes.forEach(filme =>{ - let generoLista = filme.Genre.split(",") - - for(genero of generoLista){ - - if(genero.includes(generoRequisitado)){ + let novaLista = [] + + filmes.forEach(filme => { + let generoLista = filme.Genre.split(",") + + for (genero of generoLista) { + + if (genero.includes(generoRequisitado)) { console.log(filme) novaLista.push(filme) } @@ -48,9 +49,61 @@ const getByGenre = (request, response)=>{ response.status(200).send(novaLista) } +// POST +const createFilm = (request, response) => { //post filmes + + let novoFilme = { + id: Math.random().toString(16).substr(2, 6), + Title: request.body.Title, + Year: request.body.Year, + Rated: request.body.Rated, + Released: request.body.Released, + Runtime: request.body.Runtime, + Genre: request.body.Genre, + Director: request.body.Director, + Writer: request.body.Writer, + Actors: request.body.Actors, + Plot: request.body.Plot, + Language: request.body.Language, + Country: request.body.Country, + Awards: request.body.Awards + } + + filmes.push(novoFilme) //coloca em filmes.json o meu novoFilme publicado + + response.status(200).send([{ + "mensagem": "Novo filme criado", + novoFilme + }]) +} + + +//DELETE +const deleteFilm = (request, response) => { + const idRequerido = request.params.id + const filmeFiltrado = filmes.find(filme => filme.id == idRequerido) + + if (filmeFiltrado == undefined) { + response.status(404).json({ + "mensagem": "filme não encontrado" + }) + } + else { + const indiceFilmeFiltrado = filmes.indexOf(idRequerido) + response.status(200).send({ + "mensagem": "o filme abaixo foi deletado com sucesso", + filmeFiltrado + }) + + filmes.splice(indiceFilmeFiltrado, 1) //vai no índice indicado para deletar, e deleta 1 filme naquela posição + } +} + module.exports = { //exportando as funções getAll, getById, getByTitle, - getByGenre + getByGenre, + createFilm, + deleteFilm } \ No newline at end of file diff --git a/servidor-paraolar/reprogramaflix/src/routes/filmesRoutes.js b/servidor-paraolar/reprogramaflix/src/routes/filmesRoutes.js index 7f56a6e..b21d3d7 100644 --- a/servidor-paraolar/reprogramaflix/src/routes/filmesRoutes.js +++ b/servidor-paraolar/reprogramaflix/src/routes/filmesRoutes.js @@ -8,5 +8,9 @@ router.get("/title", controller.getByTitle) router.get("/genre", controller.getByGenre) router.get("/:id", controller.getById) +router.post("/adicionar", controller.createFilm) + +router.delete("/:id", controller.deleteFilm) + module.exports = router //exportando o router \ No newline at end of file