2021-04-08 22:57:23 +12:00
|
|
|
const Router = require("@koa/router")
|
2021-04-29 05:13:21 +12:00
|
|
|
const authController = require("../../controllers/admin/auth")
|
|
|
|
const joiValidator = require("../../../middleware/joi-validator")
|
2021-04-28 04:29:05 +12:00
|
|
|
const Joi = require("joi")
|
2021-04-08 22:57:23 +12:00
|
|
|
|
|
|
|
const router = Router()
|
|
|
|
|
2021-04-28 04:29:05 +12:00
|
|
|
function buildAuthValidation() {
|
|
|
|
// prettier-ignore
|
|
|
|
return joiValidator.body(Joi.object({
|
|
|
|
username: Joi.string().required(),
|
|
|
|
password: Joi.string().required(),
|
|
|
|
}).required().unknown(false))
|
|
|
|
}
|
|
|
|
|
|
|
|
function buildResetValidation() {
|
|
|
|
// prettier-ignore
|
|
|
|
return joiValidator.body(Joi.object({
|
|
|
|
email: Joi.string().required(),
|
|
|
|
}).required().unknown(false))
|
|
|
|
}
|
|
|
|
|
2021-05-06 02:10:28 +12:00
|
|
|
function buildResetUpdateValidation() {
|
|
|
|
// prettier-ignore
|
|
|
|
return joiValidator.body(Joi.object({
|
|
|
|
resetCode: Joi.string().required(),
|
|
|
|
password: Joi.string().required(),
|
|
|
|
}).required().unknown(false))
|
|
|
|
}
|
|
|
|
|
2021-04-11 22:35:55 +12:00
|
|
|
router
|
2021-04-28 04:29:05 +12:00
|
|
|
.post("/api/admin/auth", buildAuthValidation(), authController.authenticate)
|
|
|
|
.post("/api/admin/auth/reset", buildResetValidation(), authController.reset)
|
2021-05-06 02:10:28 +12:00
|
|
|
.post("/api/admin/auth/reset/update", buildResetUpdateValidation(), authController.resetUpdate)
|
2021-04-28 04:29:05 +12:00
|
|
|
.post("/api/admin/auth/logout", authController.logout)
|
2021-04-22 08:08:04 +12:00
|
|
|
.get("/api/admin/auth/google", authController.googlePreAuth)
|
2021-04-21 23:12:22 +12:00
|
|
|
.get("/api/admin/auth/google/callback", authController.googleAuth)
|
2021-04-08 22:57:23 +12:00
|
|
|
|
|
|
|
module.exports = router
|