From a868498e7327593b40d1e02fd96531fefd9548d5 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Sat, 11 Jan 2025 10:48:19 +0700 Subject: add number telp max to 13 --- src-migrate/validations/auth.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src-migrate/validations/auth.ts') diff --git a/src-migrate/validations/auth.ts b/src-migrate/validations/auth.ts index 3abdfb57..8e867ade 100644 --- a/src-migrate/validations/auth.ts +++ b/src-migrate/validations/auth.ts @@ -11,7 +11,7 @@ export const registerSchema = z phone: z .string() .min(1, { message: 'Nomor telepon harus diisi' }) - .refine((val) => /^\d{10,12}$/.test(val), { + .refine((val) => /^\d{9,13}$/.test(val), { message: 'Format nomor telepon tidak valid, contoh: 081234567890', }), type_acc: z.string().optional(), -- cgit v1.2.3 From 9c4951174cf6cf5c15b0b2a808d5d14befac6169 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Wed, 15 Jan 2025 13:40:59 +0700 Subject: update code filter bad words registrasi --- src-migrate/validations/auth.ts | 151 +++++++++++++++++++++++++++++++++------- 1 file changed, 126 insertions(+), 25 deletions(-) (limited to 'src-migrate/validations/auth.ts') diff --git a/src-migrate/validations/auth.ts b/src-migrate/validations/auth.ts index 8e867ade..cf88011d 100644 --- a/src-migrate/validations/auth.ts +++ b/src-migrate/validations/auth.ts @@ -1,12 +1,49 @@ import { z } from 'zod'; - +const forbiddenWords = [ + 'anjing', + 'babi', + 'monyet', + 'bangsat', + ' tai ', + 'kontol', + 'memek', + 'bol', + 'pantat', + 'jembut', + 'mencret', + 'ngehe', + 'ngewe', + 'ngentot', + 'ngews', + 'jembudh', + 'jembud', + 'b4b1', + 'b4bi', + 'bab1', +]; export const registerSchema = z .object({ - name: z.string().min(1, { message: 'Nama harus diisi' }), + name: z + .string() + .min(1, { message: 'Nama harus diisi' }) + .refine( + (value) => + !forbiddenWords.some((word) => value.toLowerCase().includes(word)), + { + message: 'Nama mengandung kata yang tidak diperbolehkan', + } + ), email: z .string() .min(1, { message: 'Email harus diisi' }) - .email({ message: 'Email harus menggunakan format example@mail.com' }), + .email({ message: 'Email harus menggunakan format example@mail.com' }) + .refine( + (value) => + !forbiddenWords.some((word) => value.toLowerCase().includes(word)), + { + message: 'Nama mengandung kata yang tidak diperbolehkan', + } + ), password: z.string().min(6, { message: 'Password minimal 6 karakter' }), phone: z .string() @@ -15,37 +52,99 @@ export const registerSchema = z message: 'Format nomor telepon tidak valid, contoh: 081234567890', }), type_acc: z.string().optional(), - nama_wajib_pajak: z.string().optional(), - alamat_bisnis: z.string().optional(), - alamat_wajib_pajak: z.string().optional(), + nama_wajib_pajak: z + .string() + .refine( + (value) => + !forbiddenWords.some((word) => value.toLowerCase().includes(word)), + { + message: 'Nama mengandung kata yang tidak diperbolehkan', + } + ) + .optional(), + alamat_bisnis: z + .string() + .refine( + (value) => + !forbiddenWords.some((word) => value.toLowerCase().includes(word)), + { + message: 'Nama mengandung kata yang tidak diperbolehkan', + } + ) + .optional(), + alamat_wajib_pajak: z + .string() + .refine( + (value) => + !forbiddenWords.some((word) => value.toLowerCase().includes(word)), + { + message: 'Nama mengandung kata yang tidak diperbolehkan', + } + ) + .optional(), is_pkp: z.string(), is_terdaftar: z.string(), sppkp_document: z.string().optional(), npwp_document: z.string().optional(), industry_id: z.string().optional(), - email_partner: z.string().optional(), - business_name: z.string().optional(), + email_partner: z + .string() + .refine( + (value) => + !forbiddenWords.some((word) => value.toLowerCase().includes(word)), + { + message: 'Nama mengandung kata yang tidak diperbolehkan', + } + ) + .optional(), + business_name: z + .string() + .refine( + (value) => + !forbiddenWords.some((word) => value.toLowerCase().includes(word)), + { + message: 'Nama mengandung kata yang tidak diperbolehkan', + } + ) + .optional(), company_type_id: z.string().optional(), isChekBox: z.string().optional(), - npwp: z.string().optional().refine((val) => !val || /^\d{15,16}$/.test(val), { - message: 'Format NPWP tidak valid, NPWP harus terdiri dari 15-16 digit angka.', - }), + npwp: z + .string() + .optional() + .refine((val) => !val || /^\d{15,16}$/.test(val), { + message: + 'Format NPWP tidak valid, NPWP harus terdiri dari 15-16 digit angka.', + }), sppkp: z.string().optional(), }) .superRefine((data, ctx) => { if (data.type_acc === 'business') { if (data.is_terdaftar === 'false') { if (data.is_pkp === 'true') { - const requiredFields: { field: keyof typeof data; message: string }[] = [ + const requiredFields: { + field: keyof typeof data; + message: string; + }[] = [ { field: 'business_name', message: 'Nama perusahaan harus diisi' }, - { field: 'alamat_bisnis', message: 'Alamat perusahaan harus diisi' }, + { + field: 'alamat_bisnis', + message: 'Alamat perusahaan harus diisi', + }, // { field: 'alamat_wajib_pajak', message: 'Alamat wajib pajak harus diisi' }, { field: 'company_type_id', message: 'Badan usaha wajib dipilih' }, { field: 'industry_id', message: 'Jenis usaha harus dipilih' }, { field: 'sppkp_document', message: 'Document harus diisi' }, { field: 'npwp_document', message: 'Document harus diisi' }, - { field: 'npwp', message: 'Format NPWP tidak valid, NPWP harus terdiri dari 15-16 digit angka.' }, - { field: 'nama_wajib_pajak', message: 'Nama wajib pajak harus diisi' }, + { + field: 'npwp', + message: + 'Format NPWP tidak valid, NPWP harus terdiri dari 15-16 digit angka.', + }, + { + field: 'nama_wajib_pajak', + message: 'Nama wajib pajak harus diisi', + }, ]; requiredFields.forEach(({ field, message }) => { @@ -57,15 +156,19 @@ export const registerSchema = z }); } }); - - if (!data.email_partner || !z.string().email().safeParse(data.email_partner).success) { + + if ( + !data.email_partner || + !z.string().email().safeParse(data.email_partner).success + ) { ctx.addIssue({ code: 'custom', path: ['email_partner'], - message: 'Email partner harus diisi dengan format example@mail.com', + message: + 'Email partner harus diisi dengan format example@mail.com', }); } - if(data.isChekBox === 'false'){ + if (data.isChekBox === 'false') { if (!data.alamat_wajib_pajak) { ctx.addIssue({ code: 'custom', @@ -74,7 +177,6 @@ export const registerSchema = z }); } } - } else { if (!data.business_name) { ctx.addIssue({ @@ -110,12 +212,12 @@ export const registerSchema = z ctx.addIssue({ code: 'custom', path: ['npwp'], - message: 'Format NPWP tidak valid, NPWP harus terdiri dari 15-16 digit angka.', + message: + 'Format NPWP tidak valid, NPWP harus terdiri dari 15-16 digit angka.', }); } - } - }else{ + } else { if (data.is_pkp === 'true') { if (!data.business_name) { ctx.addIssue({ @@ -141,7 +243,6 @@ export const registerSchema = z // path: ['business_name'], // message: 'Nama perusahaan harus diisi', // }); - }else{ - + } else { } }); -- cgit v1.2.3 From 8073c4156accb3fa88469e7a16a65e46983100a5 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Wed, 15 Jan 2025 15:24:06 +0700 Subject: update code filter badword --- src-migrate/validations/auth.ts | 115 ++++++++++++++++++---------------------- 1 file changed, 51 insertions(+), 64 deletions(-) (limited to 'src-migrate/validations/auth.ts') diff --git a/src-migrate/validations/auth.ts b/src-migrate/validations/auth.ts index cf88011d..e24d6ea1 100644 --- a/src-migrate/validations/auth.ts +++ b/src-migrate/validations/auth.ts @@ -7,7 +7,7 @@ const forbiddenWords = [ ' tai ', 'kontol', 'memek', - 'bol', + ' bol ', 'pantat', 'jembut', 'mencret', @@ -20,6 +20,39 @@ const forbiddenWords = [ 'b4b1', 'b4bi', 'bab1', + 'mati', + 'perkosa', + 'bunuh', + 'membunuh', + 't41', + 't4i', + 'ta1', + 'anjay', + 'anjir', + 'anying', + 'tokay', + 'peler', + 'meki', + 'tetek', + 'teteq', + 'tobrut', + 'toket', + 'pentil', + 'pantek', + 'bangke', + 'kampret', + 'sialan', + 'beol', + 'bego', + 'goblok', + 'tolol', + 'jancok', + 'jablay', + 'jalang', + 'lonte', + 'jancuk', + 'pelacur', + 'pelakor', ]; export const registerSchema = z .object({ @@ -27,23 +60,22 @@ export const registerSchema = z .string() .min(1, { message: 'Nama harus diisi' }) .refine( - (value) => - !forbiddenWords.some((word) => value.toLowerCase().includes(word)), - { - message: 'Nama mengandung kata yang tidak diperbolehkan', - } + (value) => { + const lowerValue = value.toLowerCase(); + const hasForbiddenWord = forbiddenWords.some((word) => + lowerValue.includes(word) + ); + const isStandaloneTai = /\b(tai)\b/.test(lowerValue); + const isStandaloneBol = /\b(bol)\b/.test(lowerValue); + + return !hasForbiddenWord && !isStandaloneTai && !isStandaloneBol; + }, + { message: 'Nama mengandung kata yang tidak diperbolehkan' } ), email: z .string() .min(1, { message: 'Email harus diisi' }) - .email({ message: 'Email harus menggunakan format example@mail.com' }) - .refine( - (value) => - !forbiddenWords.some((word) => value.toLowerCase().includes(word)), - { - message: 'Nama mengandung kata yang tidak diperbolehkan', - } - ), + .email({ message: 'Email harus menggunakan format example@mail.com' }), password: z.string().min(6, { message: 'Password minimal 6 karakter' }), phone: z .string() @@ -52,61 +84,16 @@ export const registerSchema = z message: 'Format nomor telepon tidak valid, contoh: 081234567890', }), type_acc: z.string().optional(), - nama_wajib_pajak: z - .string() - .refine( - (value) => - !forbiddenWords.some((word) => value.toLowerCase().includes(word)), - { - message: 'Nama mengandung kata yang tidak diperbolehkan', - } - ) - .optional(), - alamat_bisnis: z - .string() - .refine( - (value) => - !forbiddenWords.some((word) => value.toLowerCase().includes(word)), - { - message: 'Nama mengandung kata yang tidak diperbolehkan', - } - ) - .optional(), - alamat_wajib_pajak: z - .string() - .refine( - (value) => - !forbiddenWords.some((word) => value.toLowerCase().includes(word)), - { - message: 'Nama mengandung kata yang tidak diperbolehkan', - } - ) - .optional(), + nama_wajib_pajak: z.string().optional(), + alamat_bisnis: z.string().optional(), + alamat_wajib_pajak: z.string().optional(), is_pkp: z.string(), is_terdaftar: z.string(), sppkp_document: z.string().optional(), npwp_document: z.string().optional(), industry_id: z.string().optional(), - email_partner: z - .string() - .refine( - (value) => - !forbiddenWords.some((word) => value.toLowerCase().includes(word)), - { - message: 'Nama mengandung kata yang tidak diperbolehkan', - } - ) - .optional(), - business_name: z - .string() - .refine( - (value) => - !forbiddenWords.some((word) => value.toLowerCase().includes(word)), - { - message: 'Nama mengandung kata yang tidak diperbolehkan', - } - ) - .optional(), + email_partner: z.string().optional(), + business_name: z.string().optional(), company_type_id: z.string().optional(), isChekBox: z.string().optional(), npwp: z -- cgit v1.2.3