From 4f5accfb09a9fbb79def8e4c4aa7eee552c513d8 Mon Sep 17 00:00:00 2001
From: Nicolas Fley <nicolas.fley@student.ecp.fr>
Date: Tue, 6 Jun 2017 14:10:33 +0200
Subject: [PATCH] api fixed, now working (without auth)

---
 app.js               |  2 +-
 models/item.model.js | 10 +++++-----
 routes/item.route.js | 45 ++++++++++++++++++++++++++++++--------------
 3 files changed, 37 insertions(+), 20 deletions(-)

diff --git a/app.js b/app.js
index fb52efc..6a35016 100644
--- a/app.js
+++ b/app.js
@@ -17,7 +17,7 @@ app.set('views', path.join(__dirname, 'views'));
 app.set('view engine', 'pug');
 
 //configure cookies
-app.set('trust proxy', 1) // trust first proxy 
+app.set('trust proxy', 1) // trust first proxy
 app.use(session({
   secret: 'bxbvxcbvixubc',
   resave: false,
diff --git a/models/item.model.js b/models/item.model.js
index b4b20fb..4f1650a 100644
--- a/models/item.model.js
+++ b/models/item.model.js
@@ -18,7 +18,7 @@ var Items = sequelize.define('Items', {
 	tableItem: 'Items',
 });
 
-sequelize.sync().then(() => {
+sequelize.sync({force:true}).then(() => {
   Items.create({
     description: 'Slip semi-propre',
     price: 4,
@@ -40,7 +40,7 @@ function getItemsByDate(page, step) {
   var offset = (page * step);
   return Items.findAll({
     offset: offset,
-    limit: step,
+    limit: offset + step,
     order: [['createdAt', 'DESC']]
   });
 }
@@ -49,7 +49,7 @@ function getItemsByUserId(id, page, step){
   var offset = (page * step);
   return Items.findAll({
     offset: offset,
-    limit: step,
+    limit: offset + step,
     where: { userId: id }
   });
 }
@@ -58,7 +58,7 @@ function getItemsByDescription(description, page, step) {
   var offset = (page * step);
   return Items.findAll({
     offset: offset,
-    limit: step,
+    limit: offset + step,
     where: { description: { $like: `%${description}%` } }
   });
 }
@@ -76,4 +76,4 @@ function deleteItem(id) {
     })
 }
 
-module.exports = {getItem, getItemsByDate, getItemsByUserId, getItemsByDescription, addItem, deleteItem}
\ No newline at end of file
+module.exports = {getItem, getItemsByDate, getItemsByUserId, getItemsByDescription, addItem, deleteItem}
diff --git a/routes/item.route.js b/routes/item.route.js
index 824f98b..d98b6ca 100644
--- a/routes/item.route.js
+++ b/routes/item.route.js
@@ -1,29 +1,46 @@
-var express = require('express');
-var itemModel = require('../models/item.model');
-var router = express.Router();
+const express = require('express');
+const itemModel = require('../models/item.model');
+const router = express.Router();
 
-router.get('/:id', function(req, res) {
-	var id = parseInt(req.params.id);
+const DEFAULT_PAGE = 0;
+const DEFAULT_STEP = 10;
+
+router.get('/byId/:id', function(req, res) {
+	let id = parseInt(req.params.id);
 	itemModel.getItem(id).then(out => res.json(out));
 });
 
 router.get('/date', function(req, res) {
-	var page = parseInt(req.params.page);
-	var step = parseInt(req.params.step);
+	console.log(req.query)
+	let page = parseInt(req.query.page);
+	let step = parseInt(req.query.step);
+	if(isNaN(page))
+		page = DEFAULT_PAGE;
+	if(isNaN(step))
+		step = DEFAULT_STEP;
 	itemModel.getItemsByDate(page, step).then(out => res.json(out));
 });
 
 router.get('/userId', function(req, res) {
-	var userId = parseInt(req.params.userId);
-	var page = parseInt(req.params.page);
-	var step = parseInt(req.params.step);
+	console.log(req.query)
+	let userId = parseInt(req.query.uId);
+	let page = parseInt(req.query.page);
+	let step = parseInt(req.query.step);
+	if(isNaN(page))
+		page = DEFAULT_PAGE;
+	if(isNaN(step))
+		step = DEFAULT_STEP;
 	itemModel.getItemsByUserId(userId, page, step).then(out => res.json(out));
 });
 
 router.get('/description', function(req, res) {
-	var page = parseInt(req.params.page);
-	var step = parseInt(req.params.step);
-	itemModel.getItemsByDescription(req.params.description, page, step).then(out => res.json(out));
+	let page = parseInt(req.query.page);
+	let step = parseInt(req.query.step);
+	if(isNaN(page))
+		page = DEFAULT_PAGE;
+	if(isNaN(step))
+		step = DEFAULT_STEP;
+	itemModel.getItemsByDescription(req.query.desc, page, step).then(out => res.json(out));
 });
 
 router.post('/', function(req, res) {
@@ -32,7 +49,7 @@ router.post('/', function(req, res) {
 });
 
 router.delete('/:id', function(req, res) {
-	var id = parseInt(req.params.id);
+	let id = parseInt(req.params.id);
 	itemModel.deleteItem(id).then(out => res.json(out.dataValues))
 	.catch(() => res.json({error: 'User does not exist'}));
 });
-- 
GitLab