154 lines
9.0 KiB
JavaScript
154 lines
9.0 KiB
JavaScript
const registerRouter = require('./application/register')
|
|
const loginRouter = require('./application/login')
|
|
const verifyRouter = require('./application/verify')
|
|
const provincesRouter = require('./application/provinces')
|
|
const citiesRouter = require('./application/city')
|
|
const countriesRouter = require('./application/countries')
|
|
const projectsRouter = require('./application/projects')
|
|
const usersRouter = require('./application/users')
|
|
const postsRouter = require('./application/posts')
|
|
const expertiseRouter = require('./application/expertise')
|
|
const shopCategoriesRouter = require('./application/shop-categories')
|
|
const shopsRouter = require('./application/shops')
|
|
const shopProductsRouter = require('./application/shop-products')
|
|
const shopChatRouter = require('./application/shop-chat')
|
|
const ordersRouter = require('./application/orders')
|
|
const shopOrderPaymentRouter = require('./application/payment/shop-order')
|
|
const walletRouter = require('./application/wallet')
|
|
const bookingsRouter = require('./application/bookings')
|
|
const autoDirectRouter = require('./application/autoDirect')
|
|
const shareableLinksRouter = require('./application/shareableLinks')
|
|
const adsRouter = require('./application/ads')
|
|
const profileRouter = require('./application/profile')
|
|
const workroomRouter = require('./application/workroom')
|
|
const messagesRouter = require('./application/messages')
|
|
const searchRouter = require('./application/search')
|
|
const searchRouterWeb = require('./application/search-web')
|
|
const financialRouter = require('./application/financial')
|
|
const notificationRouter = require('./application/notification')
|
|
const ticketsRouter = require('./application/tickets')
|
|
const advertisingRouter = require('./application/advertising')
|
|
const settingsRouter = require('./application/settings')
|
|
const versionRouter = require('./application/version')
|
|
const offerRouter = require('./application/offers')
|
|
const academyRoute = require('./application/academy')
|
|
const storiesRouter = require('./application/stories')
|
|
const authRouter = require('./application/auth')
|
|
const accountRouter = require('./application/account')
|
|
const giftsRouter = require('./application/gifts')
|
|
const chatRoomsRouter = require('./application/chat-rooms')
|
|
const suggestionsRouter = require('./application/suggestions')
|
|
const subUsersRouter = require('./application/sub-users')
|
|
const analyticsRouter = require('./application/analytics')
|
|
const geoRouter = require('./application/geo')
|
|
|
|
const projectsPanelRouter = require('./panel/projects')
|
|
const postsPanelRouter = require('./panel/posts')
|
|
const expertisePanelRouter = require('./panel/expertise')
|
|
const adsPanelRouter = require('./panel/ads')
|
|
const shopCategoriesPanelRouter = require('./panel/shop-categories')
|
|
const marketplaceShopsPanelRouter = require('./panel/marketplace-shops')
|
|
const walletRequestsPanelRouter = require('./panel/wallet-requests')
|
|
const loginPanelRouter = require('./panel/login')
|
|
const usersPanelRouter = require('./panel/users')
|
|
const ticketsPanelRouter = require('./panel/tickets')
|
|
const financialPanelRouter = require('./panel/financial')
|
|
const commentsPanelRouter = require('./panel/comments')
|
|
const advertisingPanelRouter = require('./panel/advertising')
|
|
const shopsPanelRouter = require('./panel/shops')
|
|
const settingsPanelRouter = require('./panel/settings')
|
|
const versionPanelRouter = require('./panel/version')
|
|
const storiesPanelRouter = require('./panel/stories')
|
|
const reportsPanelRouter = require('./panel/reports')
|
|
const suggestionsPanelRouter = require('./panel/suggestions')
|
|
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)
|
|
app.use('/api/v1/login', loginRouter)
|
|
app.use('/api/v1/auth', authRouter)
|
|
app.use('/api/v1/verify', [auth], verifyRouter)
|
|
app.use('/api/v1/provinces', provincesRouter)
|
|
app.use('/api/v1/cities', citiesRouter)
|
|
app.use('/api/v1/countries', countriesRouter)
|
|
app.use('/api/v1/projects', projectsRouter)
|
|
app.use('/api/v1/users', usersRouter)
|
|
app.use('/api/v1/posts', postsRouter)
|
|
app.use('/api/v1/expertise', expertiseRouter)
|
|
app.use('/api/v1/shop-categories', shopCategoriesRouter)
|
|
app.use('/api/v1/shops', shopsRouter)
|
|
app.use('/api/v1/shop-products', shopProductsRouter)
|
|
app.use('/api/v1/shop-chat', shopChatRouter)
|
|
app.use('/api/v1/orders', [blockCheck], ordersRouter)
|
|
app.use('/api/v1/payment/shop-order', shopOrderPaymentRouter)
|
|
app.use('/api/v1/wallet', walletRouter)
|
|
app.use('/api/v1/bookings', bookingsRouter)
|
|
app.use('/api/v1/auto-direct', autoDirectRouter)
|
|
app.use('/api/v1/shareable-links', shareableLinksRouter)
|
|
app.use('/api/v1/ads', adsRouter)
|
|
app.use('/api/v1/profile', profileRouter)
|
|
app.use('/api/v1/account', accountRouter)
|
|
app.use('/api/v1/gifts', giftsRouter)
|
|
app.use('/api/v1/chat-rooms', [auth, blockCheck], chatRoomsRouter)
|
|
app.use('/api/v1/workroom', [auth], workroomRouter)
|
|
app.use('/api/v1/messages', [auth], messagesRouter)
|
|
app.use('/api/v1/notifications', [auth], notificationRouter)
|
|
app.use('/api/v1/search', [auth], searchRouter)
|
|
app.use('/api/v1/search-web', searchRouterWeb)
|
|
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)
|
|
app.use('/api/v1/version', versionRouter)
|
|
app.use('/api/v1/geo', geoRouter)
|
|
app.use('/api/v1/academy', academyRoute)
|
|
app.use('/api/v1/stories', storiesRouter)
|
|
app.use('/api/v1/sub-users', subUsersRouter)
|
|
|
|
// 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, 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/ads', [adminAuth, requirePermission('ads')], adsPanelRouter)
|
|
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)
|
|
}
|