import { ref, Ref } from '@nuxtjs/composition-api' import VueI18n from 'vue-i18n' import { QUERY_TYPE } from '~/types/enums' import { DataManager } from '~/types/interfaces' /** * @category Use/form * @class UseValidator * Use Classe pour des utils de verifications */ class UseValidator { /** * Use méthode fournissant une fonction pour tester la validité d'un Siret ainsi que la gestion du message d'erreur */ public static useHandleSiret (i18n: VueI18n, $dataManager: DataManager) { const siretError: Ref = ref(false) const siretErrorMessage: Ref = ref('') const checkSiret = async (siret: string) => { const response = await $dataManager.invoke({ type: QUERY_TYPE.DEFAULT, url: '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 } } } export default UseValidator