analytics-ufcg / cartao-fidelidade

0 stars 0 forks source link

Permitir que na tela principal o usuário filtre os top fornecedores por município #30

Open marcuswac opened 8 years ago

marcuswac commented 8 years ago

Criar um novo box para que o usuário escolha para qual município ele quer ver os top fornecedores. O default deve ser "Todos", mostrando os top fornecedores para toda a Paraíba, como atualmente.

Além das mudanças na interface, deve ser feita uma API no back-end para que seja retornada a lista de fornecedores para um município, ordenado de acordo com a função de ranking passada como parâmetro (quantidade de licitações ou valor total das licitações).

marcuswac commented 8 years ago

Permitir que na tela principal o usuário filtre os top fornecedores por município

marcuswac commented 8 years ago

Criar função na API para retornar os top fornecedores para um município específico

danielfireman commented 8 years ago

@jeffersonrpn usamos o código ibge dos municipios?

Se sim, a API GET rankedfornecedores/pb/2008/1/codigo_municipio ou GET rankedfornecedores/pb/2008/1 (para todos os municípios)

A parte ruim dessa forma é manter uma lista de (códigos, Nome Município no FE). Outra opção seria expor mais um API endpoint pra retornar essa lista de tuplas GET municipios/pb.

Qual das opções você prefere, @jeffersonrpn ?

marcuswac commented 8 years ago

O jooby permite passar parâmetro "opcional" na URL? Algo assim:

API GET rankedfornecedores/?ano=2008&ranking=1&cod_municipio=123456

Se os valores não fossem passados, os default seriam ano=2008, ranking=1, cod_municipio = null (para todo o estado).

Isso é possível? Porque ai faria um único endpoint, mas dependendo dos parâmetros retornaria para um município específico ou para toda a paraíba.

danielfireman commented 8 years ago

Só para esclarecer a diferença entre sua sugestão e rankedfornecedores/pb/2008/1/codigo_municipio, @marcuswac : Você quer ter algo super duper genérico, certo?

Perguntando pois em ambos os casos podériamos ter um único endpoint. A diferença está na obrigatoriedade do ranking type, estado e legislatura.

Não tenho opinião forte, porém, voto em não mexer a URL por dois motivos:

Caso a gente opte por seguir o caminho dos parâmetros de URL + valores padrão, teremos que retornar eles na resposta (assim fica mais claro).

Dito isso, podemos passar o município por parâmetro ou por URL path. Qualquer um dos dois me faz feliz.

marcuswac commented 8 years ago

Depois da sua explicação, concordo em não mexer na URL para ter menos mudança e ser mais fácil de entender.

jeffersonrpn commented 8 years ago

Os códigos do município usados no frontend são os do IBGE sim. Deveria vir tudo da API, mas não temos dados de shapefile (polígono dos municípios) por isso pego de outro arquivo JSON. A sua pergunta era se deve existir um endpoint /pb/municipios que retorna todos? Se sim, só será necessário se for pra listar num combobox ou ajudar na pesquisa.

danielfireman commented 8 years ago

Beleza, @jeffersonrpn ... precisaremos disso quer seja para listar num combobox ou em uma type ahead (https://twitter.github.io/typeahead.js/).

@marcuswac massa .. vou implementar a API desse jeito então. Valeu!

marcuswac commented 8 years ago

Implementei a API GET /ranked/fornecedores/2008/1/codigo_municipio

Ele retorna os fornecedores daquele município, ordenado pelo rankingFunction (quantidade ou valor total). Eu não determinei um limite na quantidade, então ela retorna todos os fornecedores do município.

Exemplo de chamada para Campina Grande: http://web.cloud.lsd.ufcg.edu.br:44158/ranked/fornecedores/2008/1/2504009