Skip to content
Snippets Groups Projects
PostmonServer.py 1.23 KiB
Newer Older
from bottle import route, run, response
from CepTracker import CepTracker
from requests import ConnectionError
from database import MongoDb as Database
def expired(record_date):
	from datetime import datetime, timedelta

	WEEKS = 26 #6 months

	now = datetime.now()

	return ( now - record_date['v_date'] >= timedelta(weeks=WEEKS))


def _get_info_from_correios(cep):
	tracker = CepTracker()
	info = tracker.track(cep)

	if len(info) == 0:
		raise ValueError()

	return info

Alê Borba's avatar
Alê Borba committed
def verifica_cep(cep):
	cep = cep.replace('-','')

	response.headers['Access-Control-Allow-Origin'] = '*'
		result = db.get_one(cep, fields={ '_id': False })
		if not result or not result.has_key('v_date') or expired(result):
			try:
				for item in _get_info_from_correios(cep):
Alê Borba's avatar
Alê Borba committed
					db.insert_or_update(item)

			except ConnectionError:
				response.status = '503 Servico Temporariamente Indisponivel'
		result = db.get_one(cep, fields={ '_id': False, 'v_date': False })
		response.headers['Cache-Control'] = 'public, max-age=2592000'

		response.status = '404 O CEP %s informado nao pode ser localizado' %cep
Alê Borba's avatar
Alê Borba committed

def _standalone(port=9876):
Alê Borba's avatar
Alê Borba committed
    run(host='localhost', port=port)