GetOpenScope.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. const API = require("../../lib/API");
  2. const AccessControl = require("../../lib/AccessControl");
  3. const ic = require("../../lib/IC/IC").IC;
  4. const { BaseStdResponse } = require("../../BaseStdResponse");
  5. class GetOpenScope extends API {
  6. constructor() {
  7. super();
  8. this.setPath('/IC/GetOpenScope')
  9. this.setMethod('GET')
  10. }
  11. async onRequest(req, res) {
  12. let { uuid, session, username, roomId } = req.query
  13. if ([uuid, session, username, roomId].some(value => value === '' || value === null || value === undefined))
  14. return res.json({
  15. ...BaseStdResponse.MISSING_PARAMETER
  16. })
  17. // 检查 session
  18. if (!await AccessControl.checkSession(uuid, session))
  19. return res.status(401).json({
  20. ...BaseStdResponse.ACCESS_DENIED
  21. })
  22. const password = await AccessControl.checkJwAccount(uuid, username)
  23. if(!password)
  24. res.json({
  25. ...BaseStdResponse.ERR,
  26. msg: '教务系统账号未绑定或未激活'
  27. })
  28. try {
  29. const cookie = await ic.getCookie(username, password)
  30. const data = await ic.getOpenScope(cookie, roomId)
  31. res.json({
  32. ...BaseStdResponse.OK,
  33. data
  34. })
  35. } catch (error) {
  36. res.json({
  37. ...BaseStdResponse.ERR,
  38. msg: error.message || '获取位置信息失败!请稍后再试'
  39. })
  40. }
  41. }
  42. }
  43. module.exports.GetOpenScope = GetOpenScope;