import { ref, Ref } from '@nuxtjs/composition-api' import VueI18n from 'vue-i18n' import { QUERY_TYPE } from '~/types/enums' import DataProvider from "~/services/data/dataProvider"; /** * @category composables/form * Composable pour des utils de verifications */ export function useValidator($dataProvider: DataProvider, i18n: VueI18n) { /** * Use méthode fournissant une fonction pour tester la validité d'un Siret ainsi que la gestion du message d'erreur */ function useHandleSiret() { const siretError: Ref = ref(false) const siretErrorMessage: Ref = ref('') const checkSiret = async (siret: string) => { const response = await $dataProvider.invoke({ type: QUERY_TYPE.DEFAULT, url: '/api/siret-checking', id: siret }) if (typeof response !== 'undefined') { siretError.value = !response.isCorrect siretErrorMessage.value = response.isCorrect ? '' : i18n.t('siret_error') as string } else { siretError.value = false siretErrorMessage.value = '' } } return { siretError, siretErrorMessage, checkSiret } } return { useHandleSiret } }