新增获取博客评论接口

This commit is contained in:
2024-08-31 14:50:53 +08:00
parent 61c7ec8d2e
commit 83fe38a1b5
3 changed files with 47 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
import { API } from "../Plugs/API/API";
import ServerStdResponse from "../ServerStdResponse";
import MySQLConnection from '../Plugs/MySQLConnection'
// 获取博客评论
class GetBlogComment extends API {
constructor() {
super('GET', '/blogComment');
}
private pageSize = 100;
public async onRequset(data: any, res: any) {
let { bloguuid, page = 1 } = data;
if (!bloguuid || bloguuid.length != 32 || page < 1) {
return res.json(ServerStdResponse.INVALID_PARAMS);
}
let blogCommentRes = await MySQLConnection.execute('SELECT content, name, ip_address, time FROM blog_comment WHERE uuid = ? AND display = 1 ORDER BY time DESC LIMIT ? OFFSET ?;', [bloguuid, this.pageSize, (page - 1) * this.pageSize]);
if (!blogCommentRes) {
this.logger.error('获取博客评论时,数据库发生错误');
return res.json(ServerStdResponse.SERVER_ERROR);
}
return res.json({ ...ServerStdResponse.OK, data: blogCommentRes });
}
}
export default GetBlogComment;

View File

@@ -0,0 +1,17 @@
import { Request, Response, NextFunction } from "express";
import ServerStdResponse from "../../ServerStdResponse";
import Logger from "../Logger";
import captchaSession from "../Service/captchaSession";
const logger = new Logger("CheckCaptcha");
const CheckCaptchaPassed = async (req: Request, res: Response, next: NextFunction) => {
let session = req.query.session || req.body.session || '';
if (session) {
if (await captchaSession.isPassed(session))
return next();
}
let ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress || req.ip;
logger.info(`API[${req.method}][${req.url.split('?')[0]}] 请求人机验证未通过[${ip}]`);
res.json(ServerStdResponse.AUTH_ERROR);
}
export default CheckCaptchaPassed;

View File

@@ -12,6 +12,7 @@ import GetBlogList from "../APIs/GetBlogList";
import GetBlogContent from "../APIs/GetBlogContent"; import GetBlogContent from "../APIs/GetBlogContent";
import BlogLike from "../APIs/BlogLike"; import BlogLike from "../APIs/BlogLike";
import BlogComment from "../APIs/BlogComment"; import BlogComment from "../APIs/BlogComment";
import GetBlogComment from "../APIs/GetBlogComment";
import GetCaptcha from "../APIs/GetCaptcha"; import GetCaptcha from "../APIs/GetCaptcha";
import CheckCaptcha from "../APIs/CheckCaptcha"; import CheckCaptcha from "../APIs/CheckCaptcha";
@@ -32,6 +33,7 @@ class Server {
this.apiLoader.add(GetBlogContent); this.apiLoader.add(GetBlogContent);
this.apiLoader.add(BlogLike); this.apiLoader.add(BlogLike);
this.apiLoader.add(BlogComment); this.apiLoader.add(BlogComment);
this.apiLoader.add(GetBlogComment);
this.apiLoader.add(GetCaptcha); this.apiLoader.add(GetCaptcha);
this.apiLoader.add(CheckCaptcha); this.apiLoader.add(CheckCaptcha);