let express = require('express') let router = express.Router() let { Post, Thread, Sequelize } = require('../models') const Errors = require('../lib/errors') router.get('/', async (req, res) => { try { let q = req.query.q let offset = +req.query.offset || 0 let count = await Post.count({ where: { content: { $like: '%' + q + '%' } } }) let posts = await Post.findAll({ where: { content: { $like: '%' + q + '%' } }, order: [ ['id', 'DESC'] ], include: Post.includeOptions(), limit: 10, offset }) let retPosts = posts.map(p => { let ret = p.toJSON() ret.content = ret.content.replace(q, '' + q + '') return ret }) let remainingResults = count - (offset + 10) let next; if(remainingResults < 0) { next = 0 } else if(remainingResults < 10) { next = remainingResults } else { next = 10 } res.json({ posts: retPosts, offset: offset + 10, next }) } catch (e) { console.log(e) res.status(500) res.json({ errors: [Errors.unknown] }) } }) module.exports = router