Binding.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. const API = require('../../../lib/API')
  2. const { BaseStdResponse } = require('../../../BaseStdResponse')
  3. const AccessControl = require('../../../lib/AccessControl')
  4. const WeixinBindingService = require('../../../lib/AIChat/WeixinBindingService')
  5. class GetWeixinBinding extends API {
  6. constructor() {
  7. super()
  8. this.setPath('/AIChat/Weixin/Binding')
  9. this.setMethod('GET')
  10. }
  11. async onRequest(req, res) {
  12. const { uuid, session } = req.query
  13. if ([uuid, session].some(v => v === '' || v === null || v === undefined)) return res.json({ ...BaseStdResponse.MISSING_PARAMETER })
  14. if (!await AccessControl.checkSession(uuid, session)) return res.status(401).json({ ...BaseStdResponse.ACCESS_DENIED })
  15. const binding = await WeixinBindingService.refreshQrStatus(uuid)
  16. || await WeixinBindingService.getBindingByUser(uuid)
  17. return res.json({ ...BaseStdResponse.OK, data: binding })
  18. }
  19. }
  20. class CreateWeixinBinding extends API {
  21. constructor() {
  22. super()
  23. this.setPath('/AIChat/Weixin/Binding')
  24. this.setMethod('POST')
  25. }
  26. async onRequest(req, res) {
  27. const { uuid, session } = req.body
  28. if ([uuid, session].some(v => v === '' || v === null || v === undefined)) return res.json({ ...BaseStdResponse.MISSING_PARAMETER })
  29. if (!await AccessControl.checkSession(uuid, session)) return res.status(401).json({ ...BaseStdResponse.ACCESS_DENIED })
  30. const result = await WeixinBindingService.createBinding(uuid)
  31. if (!result.ok) return res.json({ ...BaseStdResponse.ERR, msg: result.msg })
  32. return res.json({ ...BaseStdResponse.OK, data: result.data })
  33. }
  34. }
  35. class DeleteWeixinBinding extends API {
  36. constructor() {
  37. super()
  38. this.setPath('/AIChat/Weixin/Binding')
  39. this.setMethod('DELETE')
  40. }
  41. async onRequest(req, res) {
  42. const { uuid, session } = req.body
  43. if ([uuid, session].some(v => v === '' || v === null || v === undefined)) return res.json({ ...BaseStdResponse.MISSING_PARAMETER })
  44. if (!await AccessControl.checkSession(uuid, session)) return res.status(401).json({ ...BaseStdResponse.ACCESS_DENIED })
  45. await WeixinBindingService.disableBinding(uuid)
  46. return res.json({ ...BaseStdResponse.OK })
  47. }
  48. }
  49. module.exports = {
  50. GetWeixinBinding,
  51. CreateWeixinBinding,
  52. DeleteWeixinBinding
  53. }