import pandas as pd

"""
Explanation: <h1>Table of Contents<span class="tocSkip"></span></h1>
<div class="toc" style="margin-top: 1em;"><ul class="toc-item"><li><span><a href="#Consulta-de-dados-de-alertas-para-a-cidade-do-Rio-de-Janeiro" data-toc-modified-id="Consulta-de-dados-de-alertas-para-a-cidade-do-Rio-de-Janeiro-1"><span class="toc-item-num">1&nbsp;&nbsp;</span>Consulta de dados de alertas para a cidade do Rio de Janeiro</a></span><ul class="toc-item"><li><span><a href="#Consulta-em-formato-CSV" data-toc-modified-id="Consulta-em-formato-CSV-1.1"><span class="toc-item-num">1.1&nbsp;&nbsp;</span>Consulta em formato CSV</a></span></li><li><span><a href="#Consulta-em-formato-JSON" data-toc-modified-id="Consulta-em-formato-JSON-1.2"><span class="toc-item-num">1.2&nbsp;&nbsp;</span>Consulta em formato JSON</a></span></li><li><span><a href="#Tratamento-de-Erros" data-toc-modified-id="Tratamento-de-Erros-1.3"><span class="toc-item-num">1.3&nbsp;&nbsp;</span>Tratamento de Erros</a></span></li></ul></li></ul></div>
End of explanation
"""


# 3304557 = Rio de Janeiro city geocode
url = 'http://localhost:8000/api/alertcity'
search_filter = (
    'geocode=3304557&disease=dengue&format=csv&' +
    'ew_start=1&ew_end=50&e_year=2017'
)
df = pd.read_csv('%s?%s' % (url, search_filter))
print(url)
df.head()

# 4106902 = Curitiba city geocode
url = 'http://localhost:8000/api/alertcity'
search_filter = (
    'geocode=4106902&disease=dengue&format=csv&' +
    'ew_start=1&ew_end=50&e_year=2017'
)
df = pd.read_csv('%s?%s' % (url, search_filter))
print(url)
df.head()

"""
Explanation: AlertaDengue API
A API AlertaDengue foi desenhada para atender às Secretarias de Saúde que necessitam dos dados do sistema para a integração em suas próprias rotinas.
A API disponibiliza a seguinte funcionalidade:

consulta de dados de alertas para a cidade do Rio de Janeiro.

Consulta de dados de alertas para a cidade do Rio de Janeiro
Esssa funcionalidade está disponível por meio da URL:
https://info.dengue.mat.br/api/alertcity?&lt;PARAMETROS_DA_CONSULTA&gt;
Onde &lt;PARAMETROS_DA_CONSULTA&gt; deve conter os parâmetros:

geocode: código IBGE da cidade
disease: tipo de doença a ser consultado (str:dengue|chikungunya|zika)
format: formato de saída dos dados (str:json|csv)
ew_start: semana epidemiológica de início da consulta (int:1-53)
ew_end: semana epidemiológica de final da consulta (int:1-53)
e_year: ano de referência da consulta (int:0-9999)

Todos os parâmetros acima mencionados são obrigatórios para a consulta.
Abaixo, segue exemplo de requisição de registros de dengue entre a 
semana 1 e 50 do ano de 2017, em formato CSV:
https://info.dengue.mat.br/api/alertcity?geocode=3304557&amp;disease=dengue&amp;format=csv&amp;ew_start=1&amp;ew_end=50&amp;e_year=2017
A continuação, seguem exemplos de uso da API referente a funcionalidade descrita.
Consulta em formato CSV
End of explanation
"""


# 4106902 = Curitiba city geocode
search_filter = (
    'geocode=4106902&disease=dengue&format=json&' +
    'ew_start=1&ew_end=50&e_year=2017'
)
search_url = '%s?%s' % (url, search_filter)

df = pd.read_json(search_url)

print(search_url)
df.head()

# 3304557 = Rio de Janeiro city geocode
search_filter = (
    'geocode=3304557&disease=dengue&format=json&' +
    'ew_start=1&ew_end=50&e_year=2017'
)
search_url = '%s?%s' % (url, search_filter)

df = pd.read_json(search_url)

print(search_url)
df.head()

"""
Explanation: Consulta em formato JSON
End of explanation
"""


params = [
    '',
    'disease=dengue',
    'geocode=3304557',
    'format=csv',
    'ew_start=1',
    'ew_end=50',
    'e_year=2017'
]

search_filter = ''
sep = ''
for param in params:
    print('-' * 80)
    
    search_filter += sep + param
    url_search = '%s?%s' % (url, search_filter)
    
    print(url_search)
    
    df = pd.read_csv(url_search)
    sep = '&'
    print(df.head())

"""
Explanation: Tratamento de Erros
End of explanation
"""


