This commit is contained in:
payacom
2026-09-13 21:32:36 +03:30
parent 90c5f94b57
commit c302aea177
49 changed files with 4063 additions and 920 deletions

View File

@@ -35,6 +35,7 @@ const accountRouter = require('./application/account')
const giftsRouter = require('./application/gifts')
const chatRoomsRouter = require('./application/chat-rooms')
const suggestionsRouter = require('./application/suggestions')
const analyticsRouter = require('./application/analytics')
const projectsPanelRouter = require('./panel/projects')
const postsPanelRouter = require('./panel/posts')
@@ -58,10 +59,15 @@ const moderationPanelRouter = require('./panel/moderation')
const academyContentPanelRouter = require('./panel/academy-content')
const licensesPanelRouter = require('./panel/licenses')
const notificationsPanelRouter = require('./panel/notifications')
const analyticsPanelRouter = require('./panel/analytics')
const adminUsersPanelRouter = require('./panel/adminUsers')
const auditLogPanelRouter = require('./panel/auditLog')
const auth = require('../middlewares/auth')
const blockCheck = require('../middlewares/blockCheck')
const adminAuth = require('../middlewares/adminAuth')
const requirePermission = require('../middlewares/requirePermission')
const auditLogger = require('../middlewares/auditLogger')
module.exports = (app) => {
// App
app.use('/api/v1/register', registerRouter)
@@ -95,6 +101,7 @@ module.exports = (app) => {
app.use('/api/v1/financial', [auth], financialRouter)
app.use('/api/v1/tickets', [auth], ticketsRouter)
app.use('/api/v1/suggestions', [auth], suggestionsRouter)
app.use('/api/v1/analytics', analyticsRouter)
app.use('/api/v1/offers', offerRouter)
app.use('/api/v1/advertising', advertisingRouter)
app.use('/api/v1/settings', settingsRouter)
@@ -103,26 +110,32 @@ module.exports = (app) => {
app.use('/api/v1/stories', storiesRouter)
// Panel
// فقط متدهای نوشتاری (POST/PUT/PATCH/DELETE) رو خودکار توی AuditLog ثبت می‌کنه —
// برای همه‌ی زیرمسیرهای پنل یکجا، بدون نیاز به افزودنش به تک‌تکِ app.use زیر
app.use('/api/v1/panel', auditLogger)
app.use('/api/v1/panel/login', loginPanelRouter)
app.use('/api/v1/panel/users', [adminAuth], usersPanelRouter)
app.use('/api/v1/panel/projects', [adminAuth], projectsPanelRouter)
app.use('/api/v1/panel/posts', [adminAuth], postsPanelRouter)
app.use('/api/v1/panel/expertise', [adminAuth], expertisePanelRouter)
app.use('/api/v1/panel/shop-categories', [adminAuth], shopCategoriesPanelRouter)
app.use('/api/v1/panel/marketplace-shops', [adminAuth], marketplaceShopsPanelRouter)
app.use('/api/v1/panel/wallet-requests', [adminAuth], walletRequestsPanelRouter)
app.use('/api/v1/panel/tickets', [adminAuth], ticketsPanelRouter)
app.use('/api/v1/panel/financial', [adminAuth], financialPanelRouter)
app.use('/api/v1/panel/comments', [adminAuth], commentsPanelRouter)
app.use('/api/v1/panel/advertising', [adminAuth], advertisingPanelRouter)
app.use('/api/v1/panel/shops', [adminAuth], shopsPanelRouter)
app.use('/api/v1/panel/settings', [adminAuth], settingsPanelRouter)
app.use('/api/v1/panel/version', [adminAuth], versionPanelRouter)
app.use('/api/v1/panel/stories', [adminAuth], storiesPanelRouter)
app.use('/api/v1/panel/reports', [adminAuth], reportsPanelRouter)
app.use('/api/v1/panel/suggestions', [adminAuth], suggestionsPanelRouter)
app.use('/api/v1/panel/moderation', [adminAuth], moderationPanelRouter)
app.use('/api/v1/panel/academy-content', [adminAuth], academyContentPanelRouter)
app.use('/api/v1/panel/licenses', [adminAuth], licensesPanelRouter)
app.use('/api/v1/panel/notifications', [adminAuth], notificationsPanelRouter)
app.use('/api/v1/panel/users', [adminAuth, requirePermission('users')], usersPanelRouter)
app.use('/api/v1/panel/projects', [adminAuth, requirePermission('projects')], projectsPanelRouter)
app.use('/api/v1/panel/posts', [adminAuth, requirePermission('posts')], postsPanelRouter)
app.use('/api/v1/panel/expertise', [adminAuth, requirePermission('expertise')], expertisePanelRouter)
app.use('/api/v1/panel/shop-categories', [adminAuth, requirePermission('shop-categories')], shopCategoriesPanelRouter)
app.use('/api/v1/panel/marketplace-shops', [adminAuth, requirePermission('marketplace-shops')], marketplaceShopsPanelRouter)
app.use('/api/v1/panel/wallet-requests', [adminAuth, requirePermission('wallet-requests')], walletRequestsPanelRouter)
app.use('/api/v1/panel/tickets', [adminAuth, requirePermission('tickets')], ticketsPanelRouter)
app.use('/api/v1/panel/financial', [adminAuth, requirePermission('financial')], financialPanelRouter)
app.use('/api/v1/panel/comments', [adminAuth, requirePermission('comments')], commentsPanelRouter)
app.use('/api/v1/panel/advertising', [adminAuth, requirePermission('advertising')], advertisingPanelRouter)
app.use('/api/v1/panel/shops', [adminAuth, requirePermission('shops')], shopsPanelRouter)
app.use('/api/v1/panel/settings', [adminAuth, requirePermission('settings')], settingsPanelRouter)
app.use('/api/v1/panel/version', [adminAuth, requirePermission('version')], versionPanelRouter)
app.use('/api/v1/panel/stories', [adminAuth, requirePermission('stories')], storiesPanelRouter)
app.use('/api/v1/panel/reports', [adminAuth, requirePermission('reports')], reportsPanelRouter)
app.use('/api/v1/panel/suggestions', [adminAuth, requirePermission('suggestions')], suggestionsPanelRouter)
app.use('/api/v1/panel/moderation', [adminAuth, requirePermission('moderation')], moderationPanelRouter)
app.use('/api/v1/panel/analytics', [adminAuth, requirePermission('analytics')], analyticsPanelRouter)
app.use('/api/v1/panel/academy-content', [adminAuth, requirePermission('academy-content')], academyContentPanelRouter)
app.use('/api/v1/panel/licenses', [adminAuth, requirePermission('licenses')], licensesPanelRouter)
app.use('/api/v1/panel/notifications', [adminAuth, requirePermission('notifications')], notificationsPanelRouter)
app.use('/api/v1/panel/admin-users', [adminAuth], adminUsersPanelRouter)
app.use('/api/v1/panel/audit-log', [adminAuth], auditLogPanelRouter)
}