UserAreaValidators.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. import Joi from 'joi';
  2. import { validateWithSchema } from '../../ValidateSchema';
  3. import { RequestUpdateUserAreaDTO, RequestUserAreaDTO } from '../../../types/admin/user_area/UserAreaDTO';
  4. const storeUserAreaSchema = Joi.object<RequestUserAreaDTO>({
  5. user_id: Joi.string().trim().required().messages({
  6. 'string.empty': 'User ID is required',
  7. }),
  8. province_id: Joi.array().items(
  9. Joi.string().trim().required()
  10. ).min(1).required().messages({
  11. 'array.base': 'Province ID must be an array',
  12. 'array.min': 'At least one Province ID is required',
  13. }),
  14. });
  15. const updateUserAreaSchema = Joi.object<Partial<RequestUpdateUserAreaDTO>>({
  16. user_id: Joi.string().trim().optional().messages({
  17. 'string.empty': 'User ID is required',
  18. }),
  19. province_id: Joi.string().trim().optional().messages({
  20. 'string.empty': 'Province ID is required',
  21. }),
  22. });
  23. export const validateStoreUserAreaRequest = (body: unknown): RequestUserAreaDTO => {
  24. return validateWithSchema<RequestUserAreaDTO>(storeUserAreaSchema, body);
  25. };
  26. export const validateUpdateUserAreaRequest = (body: unknown): Partial<RequestUpdateUserAreaDTO> => {
  27. return validateWithSchema<Partial<RequestUpdateUserAreaDTO>>(updateUserAreaSchema, body);
  28. };