Tech4biz-channel/Channel-Backend/src/routes/asset.routes.ts
2026-07-30 11:34:37 +05:30

37 lines
2.0 KiB
TypeScript

import { Router } from 'express';
import { AssetController } from '../controllers/asset.controller';
import { authenticate, requireRole } from '../middleware/auth.middleware';
import { upload } from '../middleware/upload.middleware';
const router = Router();
const assetController = new AssetController();
router.use(authenticate);
router.post('/upload', requireRole('ADMIN'), upload.fields([{ name: 'file', maxCount: 1 }, { name: 'thumbnail', maxCount: 1 }]), assetController.uploadAsset);
router.post('/upload-thumbnail', requireRole('ADMIN'), upload.single('thumbnail'), assetController.uploadThumbnail);
router.get('/scrape-case-study', requireRole('ADMIN'), assetController.scrapeCaseStudy);
router.get('/', assetController.listAssets);
router.patch('/bulk-share', requireRole('ADMIN'), assetController.bulkShareAssets);
// Asset groups endpoints
router.get('/groups/list', assetController.listAssetGroups);
router.post('/groups/create', requireRole('ADMIN'), assetController.createAssetGroup);
router.delete('/groups/:id', requireRole('ADMIN'), assetController.deleteAssetGroup);
router.patch('/groups/:id/add-assets', requireRole('ADMIN'), assetController.addAssetsToGroup);
router.patch('/groups/:id/remove-assets', requireRole('ADMIN'), assetController.removeAssetsFromGroup);
router.get('/:id', assetController.getAsset);
router.patch('/:id', requireRole('ADMIN'), assetController.updateAsset);
router.post('/:id/share', requireRole('ADMIN'), assetController.shareAsset);
router.post('/:id/unshare', requireRole('ADMIN'), assetController.unshareAsset);
router.post('/:id/download', assetController.incrementDownload);
router.delete('/:id', requireRole('ADMIN'), assetController.deleteAsset);
// Download permission request management
router.post('/:id/request-download', assetController.requestDownload);
router.post('/:id/approve-download/:requestId', requireRole('ADMIN'), assetController.approveDownload);
router.post('/:id/reject-download/:requestId', requireRole('ADMIN'), assetController.rejectDownload);
export default router;