DeleteArticle.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. const API = require("../../../lib/API");
  2. const db = require("../../../plugin/DataBase/db");
  3. const AccessControl = require("../../../lib/AccessControl");
  4. const { BaseStdResponse } = require("../../../BaseStdResponse");
  5. // 删除文章
  6. class DeleteArticle extends API {
  7. constructor() {
  8. super();
  9. this.setPath('/Admin/Article')
  10. this.setMethod('DELETE')
  11. }
  12. async onRequest(req, res) {
  13. let { uuid, session, id } = req.body
  14. if ([uuid, session, id].some(value => value === '' || value === null || value === undefined))
  15. return res.json({
  16. ...BaseStdResponse.MISSING_PARAMETER
  17. })
  18. // 检查 session
  19. if (!await AccessControl.checkSession(uuid, session))
  20. return res.status(401).json({
  21. ...BaseStdResponse.ACCESS_DENIED
  22. })
  23. // 检查权限
  24. let permission = await AccessControl.getPermission(uuid)
  25. if (!permission.includes("admin") && !permission.includes("article"))
  26. return res.json({
  27. ...BaseStdResponse.PERMISSION_DENIED
  28. })
  29. let sql = 'DELETE FROM article WHERE id = ?'
  30. let r = await db.query(sql, [id])
  31. try {
  32. if (r && r.affectedRows > 0) {
  33. res.json({
  34. ...BaseStdResponse.OK
  35. })
  36. } else {
  37. res.json({ ...BaseStdResponse.ERR, endpoint: 7894378, msg: '删除文章失败!数据库错误' })
  38. }
  39. } catch (err) {
  40. this.logger.error(`删除文章失败!${err.stack}`)
  41. res.json({
  42. ...BaseStdResponse.ERR,
  43. msg: "删除文章失败!",
  44. });
  45. }
  46. }
  47. }
  48. module.exports.DeleteArticle = DeleteArticle;