Coder Social home page Coder Social logo

cep-callback's Introduction

CEP Callback

Known Vulnerabilities

Busca por CEP usando o melhor do JavaScript, callbacks

Todos sabem que hoje as Promises dominam o mundo do JavaScript. O que faz com que a utilização de callbacks seja algo do passado. Porém o oldschool é sempre mais legal, portanto essa biblioteca mostra como callbacks ainda podem ser utilizados e como você pode se sentir um hipster ao utilizá-las em 2019.

Features

  • Interface com callbacks seguindo o padrão da biblioteca padrão do Node.js
  • Possui a mesma interface tanto nos erros como nas respostas do projeto cep-promise
  • O projeto utiliza de var que é o jeito da massa de se criar variáveis em JavaScript, sim isso é uma feature

Como utilizar

Realizando uma consulta

Por ser multifornecedor, a biblioteca irá chamar o callback com o fornecedor que mais rápido lhe responder.

var cep = require('cep-callback')

cep('05010000', function (err, cepData) {
  console.log(cepData)
})

  // {
  //   "cep":  "05010000",
  //   "state":  "SP",
  //   "city":  "São Paulo",
  //   "street":  "Rua Caiubí",
  //   "neighborhood":  "Perdizes",
  // }

Você também poderá passar o CEP como Inteiro

Em muitos sistemas o CEP é utilizado erroneamente como um Inteiro (e com isto cortando todos os zeros à esquerda). Caso este seja o seu caso, não há problema, pois a biblioteca irá preencher os caracteres faltantes na String, por exemplo:

var cep = require('cep-callback')

// enviando sem ter um zero à esquerda do CEP "05010000"
cep(5010000, function (err, cepData) {
  console.log(cepData)
})

  // {
  //   "cep":  "05010000",
  //   "state":  "SP",
  //   "city":  "São Paulo",
  //   "street":  "Rua Caiubí",
  //   "neighborhood":  "Perdizes",
  // }

Quando o CEP não é encontrado

Neste caso será retornado um "service_error" e por ser multifornecedor, a biblioteca irá retornar um erro no callback apenas quando tiver a resposta negativa de todos os fornecedores.

var cep = require('cep-callback')

cep('99999999', function (err, cepData) {
  console.log(err)
})

  // {
  //     name: 'CepPromiseError',
  //     message: 'Todos os serviços de CEP retornaram erro.',
  //     type: 'service_error',
  //     errors: [{
  //       message: 'CEP NAO ENCONTRADO',
  //       service: 'correios'
  //     }, {
  //       message: 'CEP não encontrado na base do ViaCEP.',
  //       service: 'viacep'
  //     }, {
  //       message: 'CEP não encontrado na base do Cep Aberto.',
  //       service: 'cepaberto'
  //     }]
  // }

Quando o CEP possui um formato inválido

Neste caso será retornado um "validation_error" e a biblioteca irá retornar um erro no callback, sem chegar a consultar nenhum fornecedor.

var cep = require('cep-callback')

cep('123456789123456789', function (err, cepData) {
  console.log(err)
})

  // {
  //     name: 'CepPromiseError',
  //     message: 'CEP deve conter exatamente 8 caracteres.',
  //     type: 'validation_error',
  //     errors: [{
  //       message: 'CEP informado possui mais do que 8 caracteres.',
  //       service: 'cep_validation'
  //     }]
  // }

Instalação

Browser usando CDN

<script src="https://cdn.jsdelivr.net/npm/cep-callback/src/index.js"></script>

npm

$ npm install --save cep-callback

Bower

$ bower install --save cep-callback

Angular 2

import * as cep from 'cep-callback'

cep('05010000', function (err, cepData) {
  console.log(cepData)
})

Como contribuir

Leia nosso guia de contribuição aqui

Contribuidores


@thor99

Autor


@otaviopace

cep-callback's People

Contributors

evaporei avatar thor99 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

thor99 lukasmeine

cep-callback's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.