add contacts to crm & display on dashboard
This commit is contained in:
40
src/routes/personal-contact.routes.js
Normal file
40
src/routes/personal-contact.routes.js
Normal 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
|
||||
Reference in New Issue
Block a user