@syngrisi/syngrisi
Version:
Syngrisi - Visual Testing Tool
62 lines (54 loc) • 1.69 kB
text/typescript
import { z } from 'zod';
import { commonValidations } from './utils';
const LogGetSchema = z.object({
_id: commonValidations.id,
level: z.string().min(1).openapi({
description: 'Log level',
example: 'info'
}),
message: z.string().min(1).openapi({
description: 'Log message',
example: 'User logged in'
}),
timestamp: commonValidations.date.openapi({
description: 'Timestamp of the log entry',
example: '2024-05-26T10:49:19.896Z'
}),
meta: z.object({}).optional().openapi({
description: 'Additional metadata for the log entry',
example: { userId: '66519e582c2c701cc438ce59' }
}),
id: commonValidations.id,
});
const LogCreateSchema = z.object({
level: z.string().min(1).openapi({
description: 'Log level',
example: 'info'
}).optional(),
message: z.string().min(1).openapi({
description: 'Log message',
example: 'User logged in'
}).optional(),
meta: z.object({}).optional().openapi({
description: 'Additional metadata for the log entry',
example: { userId: '66519e582c2c701cc438ce59' }
}),
});
const LogCreateRespSchema = commonValidations.success;
const LogDistinctSchema = z.object({
field: z.string().min(1).openapi({
description: 'Field name for distinct query',
example: 'level'
}),
});
const LogDistinctResponseSchema = z.array(z.string()).openapi({
description: 'Array of distinct log levels',
example: ["debug", "error", "info", "warn"]
});
export {
LogGetSchema,
LogCreateSchema,
LogDistinctSchema,
LogDistinctResponseSchema,
LogCreateRespSchema
};