Skip to content
Snippets Groups Projects
correios_server.py 1.03 KiB
Newer Older
####################################################################
# A simple Correios API to get the CEP informations 
#
# author: Alexandre Borba
#         Igor Hercowitz
#
Alê Borba's avatar
Alê Borba committed
# v 1.1.1
####################################################################

Alê Borba's avatar
Alê Borba committed
from bottle import route, run, error
from correios import CepTracker

import pymongo, json, re
Alê Borba's avatar
Alê Borba committed

Alê Borba's avatar
Alê Borba committed
@route('/cep/<cep>')
def verifica_cep(cep):
	if re.match("[0-9]{8}", cep):
Alê Borba's avatar
Alê Borba committed
		con = pymongo.MongoClient("localhost")
		db = con.postmon
		ceps = db.ceps
		result = ceps.find_one({"cep":cep}, fields={'_id':False})
		if not result:
			tracker = CepTracker()
			info = tracker.track(cep)
			cep_id = ceps.insert(info)
			result = ceps.find_one({"cep":cep}, fields={'_id':False})

		resultado = result
	else:
		result_error = json.dumps({'error':'404'})

		resultado = result_error
	return resultado
Alê Borba's avatar
Alê Borba committed

Alê Borba's avatar
Alê Borba committed

Alê Borba's avatar
Alê Borba committed
@error(404)
Alê Borba's avatar
Alê Borba committed
def error404(code):
	result_error = json.dumps({'error':'404'})
Alê Borba's avatar
Alê Borba committed

	return result_error

Alê Borba's avatar
Alê Borba committed

@error(500)
def error500(code):
	result_error = json.dumps({'error':'500'})

	return result_error