feat(validation): schémas zod et erreurs applicatives
This commit is contained in:
1 parent
c997010c8c
commit
a3d9be86d8
2 files changed
+31
No files matched your search
@@ -0,0 +1,10 @@
|
||||
import { z } from 'zod'
|
||||
|
||||
export const createCardSchema = z.object({
|
||||
question: z.string().trim().min(1, 'La question est requise').max(1000, 'Question trop longue'),
|
||||
response: z.string().trim().min(1, 'La réponse est requise').max(2000, 'Réponse trop longue'),
|
||||
theme: z.string().trim().min(1, 'Le thème est requis').max(50, 'Thème trop long'),
|
||||
tags: z.array(z.string().trim().min(1, 'Tag vide')).max(50, 'Trop de tags').optional(),
|
||||
})
|
||||
|
||||
export const updateCardSchema = createCardSchema.partial()
|
||||
@@ -0,0 +1,21 @@
|
||||
export class AppError extends Error {
|
||||
constructor(
|
||||
public readonly status: number,
|
||||
message: string,
|
||||
) {
|
||||
super(message)
|
||||
this.name = new.target.name
|
||||
}
|
||||
}
|
||||
|
||||
export class NotFoundError extends AppError {
|
||||
constructor(message: string) {
|
||||
super(404, message)
|
||||
}
|
||||
}
|
||||
|
||||
export class ValidationError extends AppError {
|
||||
constructor(message: string) {
|
||||
super(400, message)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user