77from database import MongoDb as Database
88
99app_v1 = bottle .Bottle ()
10+ jsonp_query_key = 'callback'
1011
1112def expired (record_date ):
1213 from datetime import datetime , timedelta
@@ -26,6 +27,20 @@ def _get_info_from_source(cep):
2627 return info
2728
2829
30+ def format_result (result ):
31+ # checa se foi solicitada resposta em JSONP
32+ js_func_name = bottle .request .query .get (jsonp_query_key )
33+
34+ if js_func_name :
35+ # se a resposta vai ser JSONP, o content type deve ser js e seu
36+ # conteudo deve ser JSON
37+ response .content_type = 'application/javascript'
38+ result = json .dumps (result )
39+
40+ result = '%s(%s);' % (js_func_name , result )
41+ return result
42+
43+
2944@route ('/cep/<cep:re:\d{5}-?\d{3}>' )
3045@app_v1 .route ('/cep/<cep:re:\d{5}-?\d{3}>' )
3146def verifica_cep (cep ):
@@ -52,7 +67,7 @@ def verifica_cep(cep):
5267 if result :
5368
5469 response .headers ['Cache-Control' ] = 'public, max-age=2592000'
55- return result
70+ return format_result ( result )
5671 else :
5772 response .status = '404 O CEP %s informado nao pode ser localizado' % cep
5873 return
@@ -81,7 +96,7 @@ def track_pack(provider, track):
8196 resposta ['codigo' ] = track
8297 resposta ['historico' ] = result
8398
84- return json . dumps (resposta )
99+ return format_result (resposta )
85100
86101 except AttributeError :
87102 response .status = '404 O pacote %s informado nao pode ser localizado' % track
0 commit comments