initialize git, basic setup for crm
This commit is contained in:
55
src/routes/contact.routes.js
Normal file
55
src/routes/contact.routes.js
Normal file
@@ -0,0 +1,55 @@
|
||||
import express from 'express';
|
||||
import * as contactController from '../controllers/contact.controller.js';
|
||||
import { authenticate } from '../middlewares/auth/authMiddleware.js';
|
||||
import { validateBody, validateParams } from '../middlewares/security/validateInput.js';
|
||||
import { z } from 'zod';
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
// All contact routes require authentication
|
||||
router.use(authenticate);
|
||||
|
||||
/**
|
||||
* Contact management
|
||||
*/
|
||||
|
||||
// Get all contacts
|
||||
router.get('/', contactController.getContacts);
|
||||
|
||||
// Discover potential contacts from JMAP
|
||||
router.get('/discover', contactController.discoverContacts);
|
||||
|
||||
// Add a new contact
|
||||
router.post(
|
||||
'/',
|
||||
validateBody(
|
||||
z.object({
|
||||
email: z.string().email('Neplatný formát emailu'),
|
||||
name: z.string().optional(),
|
||||
notes: z.string().optional(),
|
||||
})
|
||||
),
|
||||
contactController.addContact
|
||||
);
|
||||
|
||||
// Update a contact
|
||||
router.patch(
|
||||
'/:contactId',
|
||||
validateParams(z.object({ contactId: z.string().uuid() })),
|
||||
validateBody(
|
||||
z.object({
|
||||
name: z.string().optional(),
|
||||
notes: z.string().optional(),
|
||||
})
|
||||
),
|
||||
contactController.updateContact
|
||||
);
|
||||
|
||||
// Remove a contact
|
||||
router.delete(
|
||||
'/:contactId',
|
||||
validateParams(z.object({ contactId: z.string().uuid() })),
|
||||
contactController.removeContact
|
||||
);
|
||||
|
||||
export default router;
|
||||
Reference in New Issue
Block a user