const express = require('express');
const itemModel = require('../models/item.model');
const router = express.Router();

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) {
	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) {
	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) {
	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) {
	itemModel.addItem(req.body.description, req.body.price, req.body.userId).then(out => res.json(out.dataValues))
	.catch(err => res.json(err));
});

router.delete('/:id', function(req, res) {
	let id = parseInt(req.params.id);
	itemModel.deleteItem(id).then(out => res.json(out.dataValues))
	.catch(() => res.json({error: 'User does not exist'}));
});

module.exports = router;