You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

45 lines
1.4 KiB

import UserService from "services/userService.js"
import { R } from "utils/helper.js"
import Router from "utils/router.js"
class AuthController {
constructor() {
this.userService = new UserService()
}
async hello(ctx) {
R.ResponseJSON(R.SUCCESS,"Hello World")
}
async getUser(ctx) {
const user = await this.userService.getUserById(ctx.params.id)
R.ResponseJSON(R.SUCCESS,user)
}
async register(ctx) {
const { username, email, password } = ctx.request.body
const user = await this.userService.register({ username, email, password })
R.ResponseJSON(R.SUCCESS,user)
}
async login(ctx) {
const { username, email, password } = ctx.request.body
const result = await this.userService.login({ username, email, password })
R.ResponseJSON(R.SUCCESS,result)
}
/**
* 路由注册
*/
static createRoutes() {
const controller = new AuthController()
const router = new Router({ prefix: "/api" })
router.get("/hello", controller.hello.bind(controller), { auth: false })
router.get("/user/:id", controller.getUser.bind(controller))
router.post("/register", controller.register.bind(controller))
router.post("/login", controller.login.bind(controller))
return router
}
}
export default AuthController