var express = require('express'); var router = express.Router(); var paginate = require('../util/paginate'); var HashMap = require('hashmap').HashMap; /* All series */ router.get('/', function(req, res) { var series = new HashMap(); var qparams = new Array(); var query = 'SELECT series.id as id,name,count(*) as count FROM series,books_series_link WHERE books_series_link.series = series.id'; req.paginate = new paginate(req); query = req.paginate.appendInitialQuery(query,'sort',qparams,false); query+=' GROUP BY books_series_link.series ORDER BY sort LIMIT ? OFFSET ?'; qparams.push(req.paginate.perpage + 1); qparams.push(req.paginate.offset); req.db.each(query, qparams, function (err, row) { if (series.count() < req.paginate.perpage) series.set(''+row.id,row); else req.paginate.hasNext = true; }, function(err) { if (err) console.log(err); res.links(req.paginate.links()); /* query series authors */ var qAuthors = 'SELECT DISTINCT books_series_link.series as serie, authors.id as id,name FROM authors,books_authors_link,books_series_link WHERE books_series_link.book = books_authors_link.book AND books_authors_link.author = authors.id AND books_series_link.series IN ('; for (var i=0;i