Skip to content

Commit ff24177

Browse files
Add cidade_info attr into cep route return obj #56
1 parent a105068 commit ff24177

File tree

3 files changed

+26
-5
lines changed

3 files changed

+26
-5
lines changed

IbgeTracker.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ def _get_info_cidades(self):
5757
infos.append({
5858
'codigo_ibge_uf': celulas[0].text_content(),
5959
'sigla_uf': celulas[1].text_content(),
60-
'codigo_ibge_cidade': celulas[2].text_content(),
61-
'nome_cidade': celulas[3].text_content(),
60+
'codigo_ibge': celulas[2].text_content(),
61+
'nome': celulas[3].text_content(),
6262
'area_km2': celulas[4].text_content()
6363
})
6464
return infos
@@ -74,15 +74,15 @@ def _track_cidades(self, db):
7474
for info in infos:
7575
codigo_ibge_uf = info['codigo_ibge_uf']
7676
sigla_uf = info['sigla_uf']
77-
nome_cidade = info['nome_cidade']
77+
nome = info['nome']
7878
if codigo_ibge_uf not in siglas:
7979
siglas[codigo_ibge_uf] = sigla_uf
8080

8181
# a chave única de uma cidade não
8282
# pode ser só o nome, pois
8383
# existem cidades com mesmo nome
8484
# em estados diferentes
85-
info['sigla_uf_nome_cidade'] = '%s_%s' % (sigla_uf, nome_cidade)
85+
info['sigla_uf_nome_cidade'] = '%s_%s' % (sigla_uf, nome)
8686

8787
db.insert_or_update_cidade(info)
8888

PostmonServer.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,19 @@ def _get_estado_info(db, sigla):
5858
return db.get_one_uf(sigla, fields={'_id': False, 'sigla': False})
5959

6060

61+
def _get_cidade_info(db, sigla_uf, nome_cidade):
62+
sigla_uf = sigla_uf.upper()
63+
sigla_uf_nome_cidade = '%s_%s' % (sigla_uf, nome_cidade)
64+
fields = {
65+
'_id': False,
66+
'sigla_uf': False,
67+
'codigo_ibge_uf': False,
68+
'sigla_uf_nome_cidade': False,
69+
'nome': False
70+
}
71+
return db.get_one_cidade(sigla_uf_nome_cidade, fields=fields)
72+
73+
6174
@route('/cep/<cep:re:\d{5}-?\d{3}>')
6275
@app_v1.route('/cep/<cep:re:\d{5}-?\d{3}>')
6376
def verifica_cep(cep):
@@ -84,9 +97,14 @@ def verifica_cep(cep):
8497

8598
if result:
8699
response.headers['Cache-Control'] = 'public, max-age=2592000'
87-
estado_info = _get_estado_info(db, result['estado'])
100+
sigla_uf = result['estado']
101+
estado_info = _get_estado_info(db, sigla_uf)
88102
if estado_info:
89103
result['estado_info'] = estado_info
104+
nome_cidade = result['cidade']
105+
cidade_info = _get_cidade_info(db, sigla_uf, nome_cidade)
106+
if cidade_info:
107+
result['cidade_info'] = cidade_info
90108
return format_result(result)
91109
else:
92110
response.status = '404 O CEP %s informado nao pode ser '

database.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ def get_one(self, cep, **kwargs):
2828
def get_one_uf(self, sigla, **kwargs):
2929
return self._db.ufs.find_one({'sigla': sigla}, **kwargs)
3030

31+
def get_one_cidade(self, sigla_uf_nome_cidade, **kwargs):
32+
return self._db.cidades.find_one({'sigla_uf_nome_cidade': sigla_uf_nome_cidade}, **kwargs)
33+
3134
def get_one_uf_by_nome(self, nome, **kwargs):
3235
return self._db.ufs.find_one({'nome': nome}, **kwargs)
3336

0 commit comments

Comments
 (0)