import { ZodSchema } from 'zod';

type IsApiResponseValid = <TData>(data: TData, schema: ZodSchema) => boolean;

export const validateDataUsingZodSchema: IsApiResponseValid = (data, schema: ZodSchema) => {
  const validationResults = schema.safeParse(data);

  if (validationResults.success === false) {
    // TODO - probably need to rethink way of handling parsing errors, for now let's leave it to console.log
    // eslint-disable-next-line no-console
    console.error('Error on parsing data', validationResults.error);
    // eslint-disable-next-line no-console
    console.error(validationResults.error.message);
  }

  return validationResults.success;
};