From d85f6761cf9fb13880e957ec92d5fae57a0d313e Mon Sep 17 00:00:00 2001 From: richardtekula Date: Fri, 23 Jan 2026 06:28:56 +0100 Subject: [PATCH] fix validator in create cpompany schema --- src/services/company.service.js | 8 ++++++-- src/validators/crm.validators.js | 2 ++ ...timesheet-inbox_sk-2026-01-1768802742128.xlsx | Bin 7233 -> 0 bytes 3 files changed, 8 insertions(+), 2 deletions(-) delete mode 100644 uploads/timesheets/68927352-725c-4e95-adb6-d4002b22bef5/2026/1/company-timesheet-inbox_sk-2026-01-1768802742128.xlsx diff --git a/src/services/company.service.js b/src/services/company.service.js index 65d807e..460f4e7 100644 --- a/src/services/company.service.js +++ b/src/services/company.service.js @@ -28,6 +28,7 @@ export const getAllCompanies = async (searchTerm = null, userId = null, userRole description: companies.description, address: companies.address, city: companies.city, + postalCode: companies.postalCode, country: companies.country, phone: companies.phone, email: companies.email, @@ -81,6 +82,7 @@ export const getCompanyById = async (companyId) => { description: companies.description, address: companies.address, city: companies.city, + postalCode: companies.postalCode, country: companies.country, phone: companies.phone, email: companies.email, @@ -110,7 +112,7 @@ export const getCompanyById = async (companyId) => { * Create new company */ export const createCompany = async (userId, data) => { - const { name, description, address, city, country, phone, email, website, status } = data; + const { name, description, address, city, postalCode, country, phone, email, website, status } = data; // Check if company with same name already exists const [existing] = await db @@ -130,6 +132,7 @@ export const createCompany = async (userId, data) => { description: description || null, address: address || null, city: city || null, + postalCode: postalCode || null, country: country || null, phone: phone || null, email: email || null, @@ -156,7 +159,7 @@ export const createCompany = async (userId, data) => { export const updateCompany = async (companyId, data) => { const company = await getCompanyById(companyId); - const { name, description, address, city, country, phone, email, website, status } = data; + const { name, description, address, city, postalCode, country, phone, email, website, status } = data; // If name is being changed, check for duplicates if (name && name !== company.name) { @@ -178,6 +181,7 @@ export const updateCompany = async (companyId, data) => { description: description !== undefined ? description : company.description, address: address !== undefined ? address : company.address, city: city !== undefined ? city : company.city, + postalCode: postalCode !== undefined ? postalCode : company.postalCode, country: country !== undefined ? country : company.country, phone: phone !== undefined ? phone : company.phone, email: email !== undefined ? email : company.email, diff --git a/src/validators/crm.validators.js b/src/validators/crm.validators.js index 3475429..6eabec3 100644 --- a/src/validators/crm.validators.js +++ b/src/validators/crm.validators.js @@ -11,6 +11,7 @@ export const createCompanySchema = z.object({ description: z.string().max(1000).optional(), address: z.string().max(255).optional(), city: z.string().max(100).optional(), + postalCode: z.string().max(20).optional().or(z.literal('')), country: z.string().max(100).optional(), phone: z.string().max(50).optional(), email: z.string().email('Neplatný formát emailu').max(255).optional().or(z.literal('')), @@ -23,6 +24,7 @@ export const updateCompanySchema = z.object({ description: z.string().max(1000).optional(), address: z.string().max(255).optional(), city: z.string().max(100).optional(), + postalCode: z.string().max(20).optional().or(z.literal('').or(z.null())), country: z.string().max(100).optional(), phone: z.string().max(50).optional(), email: z.string().email('Neplatný formát emailu').max(255).optional().or(z.literal('')), diff --git a/uploads/timesheets/68927352-725c-4e95-adb6-d4002b22bef5/2026/1/company-timesheet-inbox_sk-2026-01-1768802742128.xlsx b/uploads/timesheets/68927352-725c-4e95-adb6-d4002b22bef5/2026/1/company-timesheet-inbox_sk-2026-01-1768802742128.xlsx deleted file mode 100644 index 2ac322562cf87d4d09e8debd059be772e5dcc991..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7233 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 X1Eh@hGuH@_jYtP_M?x;de8B$!2bdAl