- Add companyId column to personal_contacts table - Update personal-contact service to include companyName in list - Add getContactsByCompanyId function for company contacts endpoint - Add GET /companies/:companyId/contacts endpoint - Add companyId to contact validation schema 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
42 lines
1.3 KiB
JavaScript
42 lines
1.3 KiB
JavaScript
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(),
|
|
companyId: z.union([z.string().uuid(), z.literal(''), z.null()]).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
|