diff --git a/resources/js/vat-validation.js b/resources/js/vat-validation.js index 9bfb2b8..2dbf2ab 100644 --- a/resources/js/vat-validation.js +++ b/resources/js/vat-validation.js @@ -36,8 +36,6 @@ document.addEventListener('vue:loaded', function () { return } - console.log(result) - event.target.setCustomValidity(result ? '' : window.config.vat_validation.translations.failed) event.target.reportValidity() }); @@ -65,12 +63,19 @@ const validate = useMemoize(useThrottleFn( let options = { headers: { Authorization: `Bearer ${token.value || mask.value}`, + Accept: 'application/json', }, } return await window .rapidezAPI('post', 'vat-validate', data, options) - .catch(() => { + .catch((error) => { + if (FetchError.prototype.isPrototypeOf(error)) { + if (error.response.status === 422) { + return false + } + } + window.Notify(window.config.translations.errors.wrong, 'error') return 'error' }) diff --git a/src/Http/Controllers/VatController.php b/src/Http/Controllers/VatController.php index cd46ccc..f8af118 100644 --- a/src/Http/Controllers/VatController.php +++ b/src/Http/Controllers/VatController.php @@ -2,16 +2,13 @@ namespace Rapidez\VatValidation\Http\Controllers; -use Ibericode\Vat\Validator; -use Ibericode\Vat\Vies\ViesException; -use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -use Illuminate\Support\Facades\Cache; +use Rapidez\VatValidation\Rules\VatValid; class VatController { /** @return array */ - public function __invoke(Request $request): JsonResponse + public function __invoke(Request $request): mixed { $request->validate([ 'id' => 'string|required', @@ -26,16 +23,10 @@ public function __invoke(Request $request): JsonResponse } } - try { - // Try validating the number - $validator = new Validator; - $result = Cache::remember('vat_' . $request->id, config('rapidez.vatvalidation.cache_duration'), function () use ($request, $validator) { - return $validator->validateVatNumber($request->id); - }); + $request->validate([ + 'id' => new VatValid, + ]); - return response()->json($result); - } catch (ViesException $exception) { - abort(503, $exception->getMessage()); - } + return true; } } diff --git a/src/Rules/VatValid.php b/src/Rules/VatValid.php new file mode 100644 index 0000000..038e2a8 --- /dev/null +++ b/src/Rules/VatValid.php @@ -0,0 +1,31 @@ +validateVatNumber($value); + }); + + if (!$result) { + $fail('Vat validation failed.'); + } + } catch (ViesException $exception) { + $fail($exception->getMessage()); + } + } +}