From d533bd528d32931618cc5b72110d1732fda41ba3 Mon Sep 17 00:00:00 2001 From: tone <3341154833@qq.com> Date: Sun, 1 Sep 2024 14:37:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E7=AB=AF=E5=AE=8C=E6=88=90=E5=8D=9A?= =?UTF-8?q?=E5=AE=A2=E7=AE=A1=E7=90=86=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Server/src/APIs/Console/DelBlog.ts | 26 +++++++++++++++++++++ Server/src/APIs/Console/GetBlogs.ts | 2 +- Server/src/APIs/Console/SaveBlog.ts | 35 +++++++++++++++++++++++++++++ Server/src/Server/Server.ts | 6 ++++- 4 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 Server/src/APIs/Console/DelBlog.ts create mode 100644 Server/src/APIs/Console/SaveBlog.ts diff --git a/Server/src/APIs/Console/DelBlog.ts b/Server/src/APIs/Console/DelBlog.ts new file mode 100644 index 0000000..25c9167 --- /dev/null +++ b/Server/src/APIs/Console/DelBlog.ts @@ -0,0 +1,26 @@ +import { API } from "../../Plugs/API/API"; +import ServerStdResponse from "../../ServerStdResponse"; +import MySQLConnection from '../../Plugs/MySQLConnection' +import Auth from "../../Plugs/Middleware/Auth"; + +// 删除博客 +class DelBlog extends API { + constructor() { + super('DELETE', '/console/blog', Auth); + } + + public async onRequset(data: any, res: any) { + let { id } = data; + if (!id) { + return res.json(ServerStdResponse.PARAMS_MISSING); + } + let execRes = await MySQLConnection.execute('DELETE FROM blog WHERE `id` = ?', [id]); + + if (!execRes || execRes.affectedRows != 1) { + return res.json(ServerStdResponse.SERVER_ERROR); + } + return res.json({ ...ServerStdResponse.OK }); + } +} + +export default DelBlog; \ No newline at end of file diff --git a/Server/src/APIs/Console/GetBlogs.ts b/Server/src/APIs/Console/GetBlogs.ts index 6c24738..7143415 100644 --- a/Server/src/APIs/Console/GetBlogs.ts +++ b/Server/src/APIs/Console/GetBlogs.ts @@ -11,7 +11,7 @@ class GetBlogs extends API { public async onRequset(data: any, res: any) { // const { uuid } = data._jwt; - let resourcesRes = await MySQLConnection.execute("SELECT * FROM blog"); + let resourcesRes = await MySQLConnection.execute("SELECT * FROM blog ORDER BY id DESC"); if (!resourcesRes) { return res.json(ServerStdResponse.SERVER_ERROR); } diff --git a/Server/src/APIs/Console/SaveBlog.ts b/Server/src/APIs/Console/SaveBlog.ts new file mode 100644 index 0000000..fdf772b --- /dev/null +++ b/Server/src/APIs/Console/SaveBlog.ts @@ -0,0 +1,35 @@ +import { API } from "../../Plugs/API/API"; +import ServerStdResponse from "../../ServerStdResponse"; +import MySQLConnection from '../../Plugs/MySQLConnection' +import Auth from "../../Plugs/Middleware/Auth"; +import crypto from 'crypto' + +// 保存博客 +class SaveBlog extends API { + constructor() { + super('POST', '/console/saveBlog', Auth); + } + + public async onRequset(data: any, res: any) { + let { id, uuid, title, description, publish_time, src, access_level } = data; + if (!title || !description || !publish_time || !src || !access_level) { + return res.json(ServerStdResponse.PARAMS_MISSING); + } + let execRes: any; + if (id) { + // 保存 + execRes = await MySQLConnection.execute('UPDATE blog SET title = ?, description = ?, publish_time = ?, src = ?, access_level = ? WHERE `id` = ?', [title, description, publish_time, src, access_level, id]); + } else { + // 新建 + const uuid = crypto.createHash('md5').update(`${Math.random()}${Date.now()}`).digest('hex'); + execRes = await MySQLConnection.execute('INSERT INTO blog (uuid, title, description, src, publish_time, access_level, visit_count, like_count) VALUES (?,?,?,?,?,?,?,?)', [uuid, title, description, src, publish_time, access_level, 0, 0]); + } + + if (!execRes || execRes.affectedRows != 1) { + return res.json(ServerStdResponse.SERVER_ERROR); + } + return res.json({ ...ServerStdResponse.OK }); + } +} + +export default SaveBlog; \ No newline at end of file diff --git a/Server/src/Server/Server.ts b/Server/src/Server/Server.ts index e2e0bd4..ab762d9 100644 --- a/Server/src/Server/Server.ts +++ b/Server/src/Server/Server.ts @@ -21,6 +21,8 @@ import GetResources from "../APIs/Console/GetResources"; import GetBlogs from '../APIs/Console/GetBlogs' import SaveResource from '../APIs/Console/SaveResource' import DelResource from '../APIs/Console/DelResource' +import SaveBlog from '../APIs/Console/SaveBlog' +import DelBlog from '../APIs/Console/DelBlog' class Server { private logger = new Logger('Server'); @@ -45,9 +47,11 @@ class Server { this.apiLoader.add(Login); this.apiLoader.add(GetResources); - this.apiLoader.add(GetBlogs) this.apiLoader.add(SaveResource); this.apiLoader.add(DelResource); + this.apiLoader.add(GetBlogs) + this.apiLoader.add(SaveBlog); + this.apiLoader.add(DelBlog); this.apiLoader.start(config.apiPort); }