import { Req, Res, ReturnValue } from "#/global" import { UserSchema } from "@/schema" import { gFail, gSuccess } from "@/util" import { auth, config, method, route, validate } from "@noderun/hapi-router" import { sequelize } from "@sequelize" import * as bcrypt from "bcrypt" /** * 登录界面 */ export default class { @method("GET") @auth() async index(request: Req, h: Res): ReturnValue { const isRenderHtmx = Reflect.has(request.query, "htmx") const { id } = request.auth.credentials if (isRenderHtmx) { return h.view("htmx/path/user.pug") } return h.view("views/user.pug") } @method("GET") @auth() async logout(request: Req, h: Res): ReturnValue { request.yar.flash("success", "用户已退出") request.cookieAuth.clear() return h.redirect("/") } @method("POST") @auth() async del(request: Req, h: Res): ReturnValue { const { id } = request.auth.credentials try { const UserModel = request.getModel("user") await UserModel.destroy({ where: { id: id } }) request.yar.flash("success", "用户已删除") request.cookieAuth.clear() } catch (error) { loggerSite.error(`用户删除错误`, error.message) request.yar.flash("error", "用户删除错误") } return h.redirect("/") } }