1.0.4 • Published 5 years ago

@megamiun/loteria v1.0.4

Weekly downloads
4
License
MIT
Repository
-
Last release
5 years ago

Loteria SDK

O que é

Uma biblioteca para extração de dados de loteria do site da Caixa.

Como utilizar

Implementação Padrão

Para a configuração padrão, basta instanciar uma instância de GameFetcher por meio da função getFetcher().

Com esta você é capaz de pedir por meio da função fetch(game: Game) os detalhes sobre a modalidade desejada, após isso.

Exemplo:

val fetcher = getFetcher()

// Pega último jogo para a modalidade
val lastGameResult = fetcher.fetch(Game.QUINA)

// Pega um sorteio especifico para a modalidade
val hundrethGameResult = fetcher.fetch(Game.QUINA, 100)

// Pega um jogo não registrado no enum de Game
val otherGameResult = fetcher.fetch("supersete", 100)

Configurações Avançadas

Para configuração avançada, é possível instanciar sua própria versão de um GameFetcher, para minimizar a configuração, há diversas funções para criação de objetos padrão.

Mesmo assim, caso desejado, é possível instanciar os itens manualmente chamando seus construtores. A relação das responsabilidades é:

  • Extractor: Extrator do site da Caixa de informações sobre os jogos. Recebe tanto o Enum de Game ou uma String, correspondente ao última parte do link do jogo no site da Caixa. Retorna um Map<String, Any> contendo todas as informações oferecidas pela Caixa do jogo.
    • Exemplos de Input:
      • Quina: Game.QUINA ou quina
      • Mega-Sena: Game.MEGA_SENA ou megasena
  • Converter: Conversores de Map<String, Any> para Data, os dados do jogo esperado. Existe um para cada tipo de jogo.
  • GameFetcher: Classe central, que executa todo o fluxo de aquisição e conversão dos dados da Caixa.

Adição de Novos Conversores

Para adicionar um novo conversor, é possível buscar os conversores padrões em getDefaultConverters() e adicionar ao mapa os conversores desejados, relacionando como chave o nome do jogo, de acordo com como pesquisado no site da Caixa e uma nova instância do construtor.

Uma vez adicionado, esse mapa pode ser passado para getFetcher(converters: Map<String, Converter>) para adquirir o resultado desejado.

TODO

Possibilitar chamada sem criação de corroutines.