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); }