4.1.3
This commit is contained in:
@@ -21,7 +21,11 @@ const {
|
||||
startDeviceLink,
|
||||
getDeviceLinkSession,
|
||||
approveDeviceLink,
|
||||
pollDeviceLink
|
||||
pollDeviceLink,
|
||||
getOrCreateAutoBackupSecret,
|
||||
putKeyBackup,
|
||||
getKeyBackup,
|
||||
deleteKeyBackup
|
||||
} = require('../../../controllers/application/account/e2eeController')
|
||||
|
||||
const router = express.Router()
|
||||
@@ -44,5 +48,9 @@ router.post('/e2ee/device-link', auth, blockCheck, startDeviceLink)
|
||||
router.get('/e2ee/device-link/:linkId', auth, blockCheck, getDeviceLinkSession)
|
||||
router.post('/e2ee/device-link/:linkId/approve', auth, blockCheck, approveDeviceLink)
|
||||
router.get('/e2ee/device-link/:linkId/poll', auth, blockCheck, pollDeviceLink)
|
||||
router.get('/e2ee/auto-backup-secret', auth, blockCheck, getOrCreateAutoBackupSecret)
|
||||
router.put('/e2ee/key-backup', auth, blockCheck, putKeyBackup)
|
||||
router.get('/e2ee/key-backup', auth, blockCheck, getKeyBackup)
|
||||
router.delete('/e2ee/key-backup', auth, blockCheck, deleteKeyBackup)
|
||||
|
||||
module.exports = router
|
||||
|
||||
7
routes/application/analytics/index.js
Normal file
7
routes/application/analytics/index.js
Normal file
@@ -0,0 +1,7 @@
|
||||
const express = require('express')
|
||||
const { trackEvents } = require('../../../controllers/application/analytics/analyticsController')
|
||||
|
||||
const router = express.Router()
|
||||
router.post('/track', trackEvents)
|
||||
|
||||
module.exports = router
|
||||
@@ -6,6 +6,7 @@ const auth = require('../../../middlewares/auth')
|
||||
const blockCheck = require('../../../middlewares/blockCheck')
|
||||
const isHalfRegister = require('../../../middlewares/isHalfRegister')
|
||||
const {
|
||||
applyPhotoFilter,
|
||||
createStoryBase64,
|
||||
createStoryMultipart,
|
||||
createStoryFromPost,
|
||||
@@ -43,6 +44,7 @@ const storyUpload = multer({
|
||||
}).single('story_file')
|
||||
|
||||
router.get('/feed', getStoriesFeed)
|
||||
router.post('/apply-filter', auth, blockCheck, isHalfRegister, applyPhotoFilter)
|
||||
router.post('/create-base64', auth, blockCheck, isHalfRegister, createStoryBase64)
|
||||
// عین /posts/create چندبخشی — برای فایلهای حجیم (مخصوصاً ویدیو) که تبدیل به base64 توی
|
||||
// حافظهی JS موبایل باعث خطای OOM میشد؛ فایل مستقیم از دیسک استریم میشه
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
const express = require('express')
|
||||
const { setProfileImage, updateProfileImage } = require('../../../controllers/application/verify/setProfileImageController')
|
||||
const { setExpertise, updateExpertise } = require('../../../controllers/application/verify/expertiseController')
|
||||
const { setGender } = require('../../../controllers/application/verify/genderController')
|
||||
const { setGender, updateGender } = require('../../../controllers/application/verify/genderController')
|
||||
const { setSizes, updateSizes } = require('../../../controllers/application/verify/sizesController')
|
||||
const { setColors, updateColors } = require('../../../controllers/application/verify/colorsController')
|
||||
const { setCooperationType, updateCooperationType } = require('../../../controllers/application/verify/cooperationTypeController')
|
||||
@@ -21,6 +21,7 @@ router.patch('/profile_image', [blockCheck], [auth], updateProfileImage)
|
||||
router.post('/expertise', setExpertise)
|
||||
router.patch('/expertise', [blockCheck], [auth], updateExpertise)
|
||||
router.post('/gender', setGender)
|
||||
router.patch('/gender', [blockCheck], [auth], updateGender)
|
||||
router.post('/sizes', setSizes)
|
||||
router.patch('/sizes', [blockCheck], [auth], updateSizes)
|
||||
router.post('/services', setServices)
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
16
routes/panel/adminUsers/index.js
Normal file
16
routes/panel/adminUsers/index.js
Normal file
@@ -0,0 +1,16 @@
|
||||
const express = require('express')
|
||||
const {
|
||||
listAdmins,
|
||||
createAdmin,
|
||||
updateAdminPermissions,
|
||||
deleteAdmin
|
||||
} = require('../../../controllers/panel/adminUsers/adminUsersController')
|
||||
const requireSuperAdmin = require('../../../middlewares/requireSuperAdmin')
|
||||
|
||||
const router = express.Router()
|
||||
router.get('/', [requireSuperAdmin], listAdmins)
|
||||
router.post('/', [requireSuperAdmin], createAdmin)
|
||||
router.put('/:id/permissions', [requireSuperAdmin], updateAdminPermissions)
|
||||
router.delete('/:id', [requireSuperAdmin], deleteAdmin)
|
||||
|
||||
module.exports = router
|
||||
19
routes/panel/analytics/index.js
Normal file
19
routes/panel/analytics/index.js
Normal file
@@ -0,0 +1,19 @@
|
||||
const express = require('express')
|
||||
const {
|
||||
getDemographics,
|
||||
getDeviceStats,
|
||||
getPageStats,
|
||||
getClickStats,
|
||||
getRetentionStats,
|
||||
getSessionOverview
|
||||
} = require('../../../controllers/panel/analytics/analyticsPanelController')
|
||||
|
||||
const router = express.Router()
|
||||
router.get('/demographics', getDemographics)
|
||||
router.get('/devices', getDeviceStats)
|
||||
router.get('/pages', getPageStats)
|
||||
router.get('/clicks', getClickStats)
|
||||
router.get('/retention', getRetentionStats)
|
||||
router.get('/sessions', getSessionOverview)
|
||||
|
||||
module.exports = router
|
||||
9
routes/panel/auditLog/index.js
Normal file
9
routes/panel/auditLog/index.js
Normal file
@@ -0,0 +1,9 @@
|
||||
const express = require('express')
|
||||
const { listAuditLog, listAdminsForFilter } = require('../../../controllers/panel/auditLog/auditLogController')
|
||||
const requireSuperAdmin = require('../../../middlewares/requireSuperAdmin')
|
||||
|
||||
const router = express.Router()
|
||||
router.get('/', [requireSuperAdmin], listAuditLog)
|
||||
router.get('/admins', [requireSuperAdmin], listAdminsForFilter)
|
||||
|
||||
module.exports = router
|
||||
@@ -2,8 +2,12 @@ const express = require('express')
|
||||
const {
|
||||
getModerationStats,
|
||||
} = require('../../../controllers/panel/moderation/moderationStatsController')
|
||||
const {
|
||||
getOverallStats,
|
||||
} = require('../../../controllers/panel/moderation/overallStatsController')
|
||||
|
||||
const router = express.Router()
|
||||
router.get('/stats', getModerationStats)
|
||||
router.get('/stats/overall', getOverallStats)
|
||||
|
||||
module.exports = router
|
||||
|
||||
Reference in New Issue
Block a user