const API = require("../../../../lib/API") const AccessControl = require("../../../../lib/AccessControl") const { BaseStdResponse } = require("../../../../BaseStdResponse") const { syncAccountInfo } = require("../../../../lib/Lepao/syncAccountInfo") class UpdateAccountInfo extends API { constructor() { super() this.setPath('/Admin/Lepao/Account/UpdateAccountInfo') this.setMethod('POST') } async onRequest(req, res) { const { uuid, session, student_num } = req.body if ([uuid, session, student_num].some(v => v === '' || v === null || v === undefined)) { return res.json({ ...BaseStdResponse.MISSING_PARAMETER }) } if (!await AccessControl.checkSession(uuid, session)) { return res.status(401).json({ ...BaseStdResponse.ACCESS_DENIED }) } const permission = await AccessControl.getPermission(uuid) if (!permission.includes('admin') && !permission.includes('service')) { return res.json({ ...BaseStdResponse.PERMISSION_DENIED }) } try { const syncResult = await syncAccountInfo({ studentNum: student_num, logger: this.logger }) if (!syncResult.ok) { return res.json({ ...BaseStdResponse.ERR, msg: syncResult.msg || '同步失败,请稍后再试' }) } return res.json({ ...BaseStdResponse.OK, data: syncResult.data }) } catch (error) { this.logger.error(`管理员同步乐跑账号失败: ${error.stack || error}`) return res.json({ ...BaseStdResponse.ERR, msg: '同步失败,请稍后再试' }) } } } module.exports.UpdateAccountInfo = UpdateAccountInfo