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
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
|
|
|