瀏覽代碼

Implement test

sbkwgh 8 年之前
父節點
當前提交
8fd6ee7f76
共有 2 個文件被更改,包括 33 次插入0 次删除
  1. 21 0
      lib/pagination.js
  2. 12 0
      routes/user.js

+ 21 - 0
lib/pagination.js

@@ -14,6 +14,26 @@ async function getNextId(Model, where, items) {
 	}
 }
 
+async function getNextCount (Model, items, limit, where) {
+	let lastItem
+
+	if(Array.isArray(items)) {
+		lastItem = items.slice(-1)[0]
+	} else {
+		lastItem = items
+	}
+
+	where.id = { $gt: lastItem.id }
+
+	let remaining = await Model.count({ where })
+
+	if(remaining - limit < 0) {
+		return remaining
+	} else {
+		return limit
+	}
+}
+
 function getPaginationProps(query) {
 	let from = 0
 	let limit = 10
@@ -36,5 +56,6 @@ function getPaginationProps(query) {
 
 module.exports = {
 	getNextId,
+	getNextCount,
 	getPaginationProps
 }

+ 12 - 0
routes/user.js

@@ -137,9 +137,15 @@ router.get('/:username', async (req, res) => {
 			let lastPost = user.Posts.slice(-1)[0]
 			if(!lastPost || lastPost.postNumber+1 === lastPost.Thread.postsCount) {
 				resUser.meta.nextURL = null
+				resUser.meta.nextPostsCount = 0
 			} else {
 				resUser.meta.nextURL =
 					`/api/v1/user/${user.username}?posts=true&limit=${limit}&from=${lastPost.postNumber + 1}`
+
+				resUser.meta.nextPostsCount = await pagination.getNextCount(
+					Post, lastPost, limit,
+					{ UserId: user.id }
+				)
 			}
 
 			res.json(resUser)
@@ -165,8 +171,14 @@ router.get('/:username', async (req, res) => {
 			if(nextId) {
 				resUser.meta.nextURL =
 					`/api/v1/user/${user.username}?threads=true&limit=${limit}&from=${nextId}`
+
+				resUser.meta.nextThreadsCount = await pagination.getNextCount(
+					Thread, resUser.Threads, limit,
+					{ UserId: user.id }
+				)
 			} else {
 				resUser.meta.nextURL = null
+				resUser.meta.nextThreadsCount = 0
 			}
 
 			res.json(resUser)