-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathadminRoutes.js
More file actions
50 lines (39 loc) · 1.61 KB
/
adminRoutes.js
File metadata and controls
50 lines (39 loc) · 1.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
const express = require("express");
const router = express.Router();
const passport = require("passport");
const controller = require("../controllers/adminController");
const auth = require("../middlewares/authMiddleware");
const validate = require("../middlewares/validate");
const {
validateLogin,
validateRegister,
validateRewardUpdate,
} = require("../utils/validators");
// @route POST /api/admin/register
// @desc Register admin via email/password
router.post("/register", validate(validateRegister), controller.register);
// @route POST /api/admin/login
// @desc Login admin via email/password
router.post("/login", validate(validateLogin), controller.login);
// @route GET /api/admin/auth/google
// @desc Initiate Google OAuth
router.get('/auth/google',
passport.authenticate('google', { scope: ['openid','profile','email'] })
);
// @route GET /api/admin/auth/google/callback
// @desc Google OAuth callback
router.get(
"/auth/google/callback",
passport.authenticate("google", { session: false, failureRedirect: "/login" }),
controller.googleCallback
);
// @route GET /api/admin/users
// @desc Get all registered users (protected)
router.get("/users", auth, controller.getUsers);
router.get("/users/rewarded", auth, controller.getRewardedUsers);
router.get("/users/count", auth, controller.totalUser);
router.get("/users/monthly-users", controller.getMonthlyUserStats);
// @route PATCH /api/admin/users/:id/reward
// @desc Update reward status (protected)
router.patch("/users/:id/reward", auth, validate(validateRewardUpdate), controller.updateRewardStatus);
module.exports = router;