24 lines
1.5 KiB
TypeScript
24 lines
1.5 KiB
TypeScript
// ==================== EMAIL PROVIDER ROUTES ====================
|
|
|
|
import { Router } from 'express';
|
|
import * as emailProviderController from '../controllers/emailProvider.controller.js';
|
|
import { authenticate, requirePermission } from '../middleware/auth.js';
|
|
|
|
const router = Router();
|
|
|
|
// Provider Config CRUD (Admin-only)
|
|
router.get('/configs', authenticate, requirePermission('settings:read'), emailProviderController.getProviderConfigs);
|
|
router.get('/configs/:id', authenticate, requirePermission('settings:read'), emailProviderController.getProviderConfig);
|
|
router.post('/configs', authenticate, requirePermission('settings:update'), emailProviderController.createProviderConfig);
|
|
router.put('/configs/:id', authenticate, requirePermission('settings:update'), emailProviderController.updateProviderConfig);
|
|
router.delete('/configs/:id', authenticate, requirePermission('settings:update'), emailProviderController.deleteProviderConfig);
|
|
|
|
// Email Operations
|
|
router.post('/test-connection', authenticate, requirePermission('settings:update'), emailProviderController.testConnection);
|
|
router.get('/domain', authenticate, emailProviderController.getProviderDomain);
|
|
router.get('/check/:localPart', authenticate, requirePermission('customers:read'), emailProviderController.checkEmailExists);
|
|
router.post('/provision', authenticate, requirePermission('customers:update'), emailProviderController.provisionEmail);
|
|
router.delete('/deprovision/:localPart', authenticate, requirePermission('customers:update'), emailProviderController.deprovisionEmail);
|
|
|
|
export default router;
|