pushy

Signed-off-by: Kenneth Obsequio <k80308392@gmail.com>
This commit is contained in:
2026-06-28 11:29:07 +08:00
parent 463a8d3978
commit 89acdfc239
67 changed files with 2736 additions and 306 deletions
+3 -1
View File
@@ -30,7 +30,8 @@ const groupsRoutes = require('./groups.routes');
const assetsRoutes = require('./assets.routes');
const coursesRoutes = require('./courses.routes');
const taskRoutes = require('./task.routes');
const tiersRoutes = require('./tiers.routes');
const tiersRoutes = require('./tiers.routes');
const tierCategoriesRoutes = require('./tier_categories.routes');
const categoriesRoutes = require('./categories.routes');
const productsRoutes = require('./products.routes');
const advertisementRoutes = require('./advertisements.routes');
@@ -49,6 +50,7 @@ router.use('/groups', groupsRoutes);
router.use('/assets', assetsRoutes);
router.use('/courses', coursesRoutes);
router.use('/task-lists', taskRoutes);
router.use('/tiers/categories', tierCategoriesRoutes);
router.use('/tiers', tiersRoutes);
router.use('/categories', categoriesRoutes);
router.use('/products', productsRoutes);
+1
View File
@@ -21,6 +21,7 @@ router.delete("/bulk", ctrl.bulkArchiveCourses);
router.get("/archives", ctrl.getArchivedCourses);
router.patch("/restore/bulk", ctrl.bulkRestoreCourses);
router.get("/flat", ctrl.getCoursesFlat);
router.get("/by-subscription", ctrl.getCoursesBySubscription);
router.get("/units-flat", ctrl.getUnitsFlat);
router.get("/lessons-flat", ctrl.getLessonsFlat);
+2 -1
View File
@@ -10,6 +10,7 @@ const router = require("express").Router();
const ctrl = require("../../controllers/admin/media.controller");
// Auth + requireAdmin are already applied by admin.routes.js before reaching here.
router.post("/token", ctrl.issueToken);
router.post("/token", ctrl.issueToken);
router.post("/tokens", ctrl.issueTokensBatch);
module.exports = router;
+14
View File
@@ -0,0 +1,14 @@
'use strict';
const router = require('express').Router();
const ctrl = require('../../controllers/admin/tier_categories.controller');
// Auth + requireAdmin applied by admin.routes.js
router.get ('/', ctrl.getCategories);
router.post ('/', ctrl.createCategory);
router.get ('/:id', ctrl.getCategory);
router.put ('/:id', ctrl.updateCategory);
router.delete('/:id', ctrl.deleteCategory);
module.exports = router;
+19
View File
@@ -0,0 +1,19 @@
const express = require('express');
const router = express.Router();
const ctrl = require('../../controllers/admin/tier_policies.controller');
// ─── Plan Policies ────────────────────────────────────────────────────────────
// GET /admin/tiers/plans/:planId/policy
// PUT /admin/tiers/plans/:planId/policy — JSON: { badge_asset_id, badge_label, access_rules, … }
router.get('/plans/:planId/policy', ctrl.getPlanPolicy);
router.put('/plans/:planId/policy', ctrl.upsertPlanPolicy);
// ─── System Badges ────────────────────────────────────────────────────────────
// GET /admin/tiers/system-badges
// GET /admin/tiers/system-badges/:key
// PUT /admin/tiers/system-badges/:key — JSON: { asset_id, label, active_from, active_until, … }
router.get('/system-badges', ctrl.getSystemBadges);
router.get('/system-badges/:key', ctrl.getSystemBadge);
router.put('/system-badges/:key', ctrl.upsertSystemBadge);
module.exports = router;
+7
View File
@@ -16,6 +16,13 @@ router.put('/:id', sensitiveOpsLimiter, usersCtrl.updateUser);
router.delete('/:id', sensitiveOpsLimiter, usersCtrl.deactivateUser);
router.post('/:id/restore', sensitiveOpsLimiter, usersCtrl.restoreUser);
// ── Bans ──────────────────────────────────────────────────────────────────────
router.post('/bulk/ban', sensitiveOpsLimiter, usersCtrl.bulkBanUsers);
router.post('/bulk/unban', sensitiveOpsLimiter, usersCtrl.bulkUnbanUsers);
router.get('/:id/bans', usersCtrl.getUserBans);
router.post('/:id/ban', sensitiveOpsLimiter, usersCtrl.banUser);
router.post('/:id/unban', sensitiveOpsLimiter, usersCtrl.unbanUser);
// ── Sessions ──────────────────────────────────────────────────────────────────
router.get('/:id/sessions', usersCtrl.getUserSessions);
router.delete('/:id/sessions/:sid', sensitiveOpsLimiter, usersCtrl.terminateSession);