finish taller4
This commit is contained in:
parent
e01fca027d
commit
aa1848691e
BIN
taller4/Taller4.docx
Normal file
BIN
taller4/Taller4.docx
Normal file
Binary file not shown.
83
taller4/controllers/bookController.js
Normal file
83
taller4/controllers/bookController.js
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
|
||||||
|
var Book = require('../models/book.js');
|
||||||
|
|
||||||
|
function list_books(req, res) {
|
||||||
|
Book.find({}, (err, book) => {
|
||||||
|
if (err) {
|
||||||
|
return res.status(500).send({ message: 'Error: Could not get books!' });
|
||||||
|
}
|
||||||
|
res.status(200).send({ book });
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function show_book(req, res) {
|
||||||
|
let id = { '_id': req.params.id };
|
||||||
|
Book.find(id, (err, book) => {
|
||||||
|
if (err) {
|
||||||
|
return res.status(500).send({ message: 'Error: Could not get books!' });
|
||||||
|
}
|
||||||
|
res.status(200).send({ book });
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function new_book(req, res) {
|
||||||
|
try{
|
||||||
|
let book = new Book();
|
||||||
|
book.nombre = req.body.nombre;
|
||||||
|
book.anio = req.body.anio;
|
||||||
|
book.idioma = req.body.idioma;
|
||||||
|
book.autor = req.body.autor;
|
||||||
|
book.save((err, bookSave) => {
|
||||||
|
if (err) {
|
||||||
|
return res.status(400).send({ message: `Error: Could not save book to database!> ${err}` });
|
||||||
|
}
|
||||||
|
res.status(200).send({ book: bookSave });
|
||||||
|
})
|
||||||
|
}
|
||||||
|
catch (error) {
|
||||||
|
res.status(500).send({ message: `error:` + error });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function modify_book(req, res) {
|
||||||
|
let book = new Book();
|
||||||
|
book._id = req.params.id;
|
||||||
|
book.nombre = req.body.nombre;
|
||||||
|
book.anio = req.body.anio;
|
||||||
|
book.idioma = req.body.idioma;
|
||||||
|
book.autor = req.body.autor;
|
||||||
|
Book.updateOne({ '_id': book._id }, book, (err, updatedBook) => {
|
||||||
|
if (err) {
|
||||||
|
return res.status(400).send({ message: `Error: Could not save book to database!> ${err}` });
|
||||||
|
}
|
||||||
|
if (updatedBook.nModified == 1) {
|
||||||
|
res.status(200).send({ message: `Book modified!` });
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
res.status(400).send({ message: `Error: Book could not be modified!` });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function delete_book(req, res) {
|
||||||
|
let id = { '_id': req.params.id };
|
||||||
|
Book.deleteOne(id, (err, book) => {
|
||||||
|
if (err) {
|
||||||
|
return res.status(400).send({ message: `Error: Could not save book to database!> ${err}` });
|
||||||
|
}
|
||||||
|
if (book.deletedCount == 1) {
|
||||||
|
res.status(200).send({ message: `Book deleted!` });
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
res.status(400).send({ message: `Error: Book could not be deleted!` });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
list_books,
|
||||||
|
show_book,
|
||||||
|
new_book,
|
||||||
|
modify_book,
|
||||||
|
delete_book
|
||||||
|
};
|
42
taller4/index.js
Normal file
42
taller4/index.js
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
'use strict'
|
||||||
|
require('dotenv').config();
|
||||||
|
const express = require('express');
|
||||||
|
const bodyParser = require('body-parser');
|
||||||
|
const app = express();
|
||||||
|
|
||||||
|
var cors = require('cors');
|
||||||
|
app.use(cors());
|
||||||
|
app.options('*', cors());
|
||||||
|
|
||||||
|
var book_route = require('./routes/bookRoute');
|
||||||
|
|
||||||
|
const mongoose = require('mongoose');
|
||||||
|
|
||||||
|
app.use(bodyParser.urlencoded({ extended: false }));
|
||||||
|
app.use(bodyParser.json());
|
||||||
|
|
||||||
|
app.use('/api', book_route);
|
||||||
|
|
||||||
|
const options = {
|
||||||
|
useNewUrlParser: true,
|
||||||
|
useCreateIndex: true,
|
||||||
|
autoIndex: true,
|
||||||
|
keepAlive: true,
|
||||||
|
poolSize: 10,
|
||||||
|
bufferMaxEntries: 0,
|
||||||
|
connectTimeoutMS: 10000,
|
||||||
|
socketTimeoutMS: 45000,
|
||||||
|
family: 4,
|
||||||
|
useFindAndModify: false,
|
||||||
|
useUnifiedTopology: true
|
||||||
|
}
|
||||||
|
|
||||||
|
mongoose.connect(`mongodb://192.99.144.232:27017/grupo12?security=false`, options)
|
||||||
|
.then(() => console.log('> Successfully connected to DB'))
|
||||||
|
.catch(err => console.log(err));
|
||||||
|
|
||||||
|
app.listen(5000, () => {
|
||||||
|
console.log('> Service running on port 5000');
|
||||||
|
})
|
||||||
|
|
||||||
|
module.exports = app;
|
26
taller4/models/book.js
Normal file
26
taller4/models/book.js
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
'use strict'
|
||||||
|
const mongoose = require('mongoose');
|
||||||
|
const Schema = mongoose.Schema;
|
||||||
|
const BookSchema = Schema(
|
||||||
|
{
|
||||||
|
nombre: {
|
||||||
|
type:String,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
anio: {
|
||||||
|
type:Number,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
idioma: {
|
||||||
|
type: String,
|
||||||
|
enum: ['ING','ESP'],
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
autor: {
|
||||||
|
type:String,
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
module.exports = mongoose.model('books', BookSchema);
|
1342
taller4/package-lock.json
generated
Normal file
1342
taller4/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
22
taller4/package.json
Normal file
22
taller4/package.json
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"name": "taller4",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"start": "nodemon index.js",
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
|
},
|
||||||
|
"author": "Chris Cromer",
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"body-parser": "^1.19.0",
|
||||||
|
"cors": "^2.8.5",
|
||||||
|
"dotenv": "^10.0.0",
|
||||||
|
"express": "^4.17.1",
|
||||||
|
"mongoose": "^5.9.24"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"nodemon": "^2.0.14"
|
||||||
|
}
|
||||||
|
}
|
14
taller4/routes/bookRoute.js
Normal file
14
taller4/routes/bookRoute.js
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
'use strict'
|
||||||
|
var express = require('express');
|
||||||
|
|
||||||
|
var bookController = require('../controllers/bookController');
|
||||||
|
|
||||||
|
var api = express.Router();
|
||||||
|
|
||||||
|
api.get('/book', bookController.list_books);
|
||||||
|
api.get('/book/:id', bookController.show_book);
|
||||||
|
api.post('/book', bookController.new_book);
|
||||||
|
api.put('/book/:id', bookController.modify_book);
|
||||||
|
api.delete('/book/:id', bookController.delete_book);
|
||||||
|
|
||||||
|
module.exports = api;
|
1395
taller4/yarn.lock
Normal file
1395
taller4/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user