admin.route.ts
Prefix: /api/v1/admin
The staff control panel API. Creating videos, editing questions, importing PYQ, managing users, and current affairs admin workflows all live here or in routers mounted from here.
Guards
Typically:
authMiddleware → adminMiddleware → hasPermission(...)Super admin (isAdmin: true) bypasses role lists and gets all permissions (see permissions.ts).
What’s inside (high level)
| Domain | Permission | Examples |
|---|---|---|
| Admin management | MANAGE_ADMINS (super admin) | Promote/demote staff roles |
| Users | VIEW_USERS / DELETE_USERS | List, search, delete |
| Stats | VIEW_STATS | Signup chart, top exams / states |
| Announcements / exam info | *_CONTENT | Content CRUD |
| YouTube videos | MANAGE_VIDEOS | Videos, search, channel filters |
| Video timestamps | MANAGE_QUESTIONS | Per-video timestamps (±15s dedup) |
| MCQs | MANAGE_QUESTIONS | One question per timestamp, bulk import |
| Playlists | MANAGE_PLAYLISTS | Per-channel folders |
| Mock tests | MANAGE_MOCK_TESTS | Mock test definitions |
Nested routers (mounted by this file)
| Mount | File | Audience |
|---|---|---|
/api/v1/admin/practice-pyq | practice-pyq-admin.routes.ts | PYQ catalog admin |
/api/v1/admin/practice-yt | same file (practiceYtAdminRouter) | YouTube practice catalog admin |
/api/v1/admin/marketing | marketing-admin.routes.ts | Sponsors / coupon deals |
/api/v1/admin/current-affairs | current-affairs-admin.routes.ts | CA issues, items, MCQs, flashcards, entities |
Two more admin surfaces are mounted directly from index.ts, outside adminRouter:
| Mount | File | Audience |
|---|---|---|
/api/v1/admin/notifications | notification.route.ts (adminNotificationsRouter) | Push metrics / recent logs |
/api/v1/admin/rate-limits | admin-rate-limits.routes.ts | Dynamic rate-limit policies (see rate limiting) |
Warning
This file is very long (~1000+ lines). Treat it as many mini-routes in one file.
When adding admin features:
- Add permission in
config/permissions.ts - Guard route
- Implement logic in
services/, not inline in route
Related route files
Not everything is literally inside admin.route.ts — some routers are separate files but mounted under /api/v1/admin from index.ts or admin composition. Check imports at the top of admin.route.ts.
Last updated on