option for more emails,fix jmap service,add table email accounts
This commit is contained in:
@@ -27,6 +27,7 @@ router.post(
|
||||
email: z.string().email('Neplatný formát emailu'),
|
||||
name: z.string().optional(),
|
||||
notes: z.string().optional(),
|
||||
accountId: z.string().uuid().optional(),
|
||||
})
|
||||
),
|
||||
contactController.addContact
|
||||
|
||||
71
src/routes/email-account.routes.js
Normal file
71
src/routes/email-account.routes.js
Normal file
@@ -0,0 +1,71 @@
|
||||
import express from 'express';
|
||||
import * as emailAccountController from '../controllers/email-account.controller.js';
|
||||
import { authenticate } from '../middlewares/auth/authMiddleware.js';
|
||||
import { validateBody, validateParams } from '../middlewares/security/validateInput.js';
|
||||
import { sensitiveOperationLimiter } from '../middlewares/security/rateLimiter.js';
|
||||
import {
|
||||
createEmailAccountSchema,
|
||||
updateEmailAccountSchema,
|
||||
} from '../validators/email-account.validators.js';
|
||||
import { z } from 'zod';
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
// All email account routes require authentication
|
||||
router.use(authenticate);
|
||||
|
||||
/**
|
||||
* Email account management
|
||||
*/
|
||||
|
||||
// Get all email accounts for logged-in user
|
||||
router.get('/', emailAccountController.getEmailAccounts);
|
||||
|
||||
// Get specific email account
|
||||
router.get(
|
||||
'/:id',
|
||||
validateParams(z.object({ id: z.string().uuid() })),
|
||||
emailAccountController.getEmailAccount
|
||||
);
|
||||
|
||||
// Create new email account
|
||||
router.post(
|
||||
'/',
|
||||
sensitiveOperationLimiter,
|
||||
validateBody(createEmailAccountSchema),
|
||||
emailAccountController.createEmailAccount
|
||||
);
|
||||
|
||||
// Update email account password
|
||||
router.patch(
|
||||
'/:id/password',
|
||||
validateParams(z.object({ id: z.string().uuid() })),
|
||||
validateBody(z.object({ emailPassword: z.string().min(1) })),
|
||||
sensitiveOperationLimiter,
|
||||
emailAccountController.updateEmailAccountPassword
|
||||
);
|
||||
|
||||
// Toggle email account status
|
||||
router.patch(
|
||||
'/:id/status',
|
||||
validateParams(z.object({ id: z.string().uuid() })),
|
||||
validateBody(z.object({ isActive: z.boolean() })),
|
||||
emailAccountController.toggleEmailAccountStatus
|
||||
);
|
||||
|
||||
// Set email account as primary
|
||||
router.post(
|
||||
'/:id/set-primary',
|
||||
validateParams(z.object({ id: z.string().uuid() })),
|
||||
emailAccountController.setPrimaryEmailAccount
|
||||
);
|
||||
|
||||
// Delete email account
|
||||
router.delete(
|
||||
'/:id',
|
||||
validateParams(z.object({ id: z.string().uuid() })),
|
||||
sensitiveOperationLimiter,
|
||||
emailAccountController.deleteEmailAccount
|
||||
);
|
||||
|
||||
export default router;
|
||||
Reference in New Issue
Block a user