add contacts to crm & display on dashboard

This commit is contained in:
richardtekula
2025-12-08 10:36:43 +01:00
parent 38e2c5970a
commit 918af3a843
5 changed files with 220 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
import express from 'express'
import { z } from 'zod'
import { authenticate } from '../middlewares/auth/authMiddleware.js'
import { validateBody, validateParams } from '../middlewares/security/validateInput.js'
import * as personalContactController from '../controllers/personal-contact.controller.js'
const router = express.Router()
const createContactSchema = z.object({
firstName: z.string().min(1, 'Meno je povinné'),
lastName: z.string().optional(),
phone: z.string().min(3, 'Telefón je povinný'),
email: z.string().email('Neplatný email'),
secondaryEmail: z.union([z.string().email('Neplatný email'), z.literal('')]).optional(),
})
const updateContactSchema = createContactSchema.partial()
const contactIdSchema = z.object({ contactId: z.string().uuid() })
router.use(authenticate)
router.get('/', personalContactController.listPersonalContacts)
router.post('/', validateBody(createContactSchema), personalContactController.createPersonalContact)
router.put(
'/:contactId',
validateParams(contactIdSchema),
validateBody(updateContactSchema),
personalContactController.updatePersonalContact
)
router.delete(
'/:contactId',
validateParams(contactIdSchema),
personalContactController.deletePersonalContact
)
export default router