'use strict'; const _ = require('lodash'); const querystring = require('querystring'); const { ObjectId } = require('mongoose').Types; module.exports = options => { return async function fetchThumbs(ctx, next) { const url = ctx.request.url.split('?')[1]; const query = JSON.parse(JSON.stringify(querystring.parse(url))); const { openid } = query; await next(); if (openid) { let data = _.get(ctx.response, 'body.data'); if (data) { data = JSON.parse(JSON.stringify(data)); const res = await ctx.service.thumbs.getSum({ ids: [ data._id ], openid }); const r = res.find(f => ObjectId(f._id).equals(data._id)); if (r && r.sum > 0) data.thumbs = true; else data.thumbs = false; ctx.response.body.data = data; } } }; };