const { adminService, courseService, referralService, repository } = require('../services') const { hasPermission } = require('../constants/permissions') async function getBootstrap(req, res, next) { try { const profile = await repository.findUserById(req.account.id) if (!profile) { const error = new Error('账号不存在') error.status = 404 throw error } const safeProfile = await repository.withPermissions(profile) const account = await repository.getPointAccount(profile.id) const referralCenter = await referralService.getCenter(profile.id) res.json({ ok: true, data: { profile: { ...safeProfile, points: account }, points: account, stats: referralCenter.stats, referralStats: referralCenter.stats, rules: referralCenter.rules, courses: await courseService.listCourses(), admin: hasPermission(safeProfile, ['dashboard:overview:view']) ? await adminService.getDashboard() : null, }, }) } catch (error) { next(error) } } module.exports = { getBootstrap }