UNPKG

angular-viacep

Version:

Angular Module for integration WebService ViaCep created by César Barone <cesar.bmcosta@gmail.com>

57 lines (49 loc) 1.57 kB
angular .module 'angular.viacep' .factory 'viaCepHelper', [ 'viaCep' '$q' 'VALID_KEYS' (viaCep, $q, VALID_KEYS) -> service = {} _fillAddress = (address, mappers) -> for key in VALID_KEYS if mappers[key] != undefined ngModelController = mappers[key] if !ngModelController.$modelValue ngModelController.$setViewValue(address[key]) ngModelController.$render() _cleanAddress = (mappers) -> for key in VALID_KEYS if mappers[key] != undefined mappers[key].$setViewValue('') mappers[key].$render() _get = (cepValue, mappers) -> deferred = $q.defer() viaCep.get(cepValue) .then (response) -> deferred.resolve() _fillAddress(response, mappers) , (response) -> deferred.reject() _cleanAddress() deferred.promise _isValidKey = (viacepKey) -> index = VALID_KEYS.indexOf(viacepKey) if index == -1 return false true _isValidCep = (cepValue) -> if cepValue is '' return false return false if cepValue is null or cepValue is undefined formatedCep = cepValue.replace(/\D/g, '') return false if formatedCep.length != 8 true service.fillAddress = _fillAddress service.get = _get service.isValidCep = _isValidCep service.isValidKey = _isValidKey service.cleanAddress = _cleanAddress service ]