Class: EnemSolicitacao::Gateway
- Inherits:
-
Object
- Object
- EnemSolicitacao::Gateway
- Defined in:
- lib/enem_solicitacao/gateway.rb
Overview
Esta classe fornece uma interface para interagir com sistema Enem Solicitação. Com ela, é possível buscar resultados de candidatos. Ela pode ser instanciada manualmente da seguinte maneira:
session = EnemSolicitacao::Session.new('login', 'password')
gateway = EnemSolicitacao::Gateway.new(session, ano_referencia)
No entanto, o recomendado é utilizar o objeto “global”:
EnemSolicitacao.gateway
Este último utiliza uma sessão global e a configuração geral de login e senha. Veja a documentação de EnemSolicitacao para maiores detalhes.
Constant Summary collapse
- REGISTRY_KIND =
'numeroInscricao'
- CPF_KIND =
'cpf'
Instance Method Summary collapse
-
#initialize(session, year = EnemSolicitacao.year) ⇒ Gateway
constructor
Construtor.
-
#last_result(retries: 5) ⇒ Object
Carrega e retorna o conteúdo do resultado da última busca efetuada.
-
#search_by_cpf(*cpfs) ⇒ Object
Busca resultados pelo CPF.
-
#search_by_registry(*registries) ⇒ Object
Busca resultados pelo número de inscrição.
Constructor Details
#initialize(session, year = EnemSolicitacao.year) ⇒ Gateway
Construtor.
`session`: Sess
22 23 24 25 |
# File 'lib/enem_solicitacao/gateway.rb', line 22 def initialize(session, year = EnemSolicitacao.year) @session = session @year = year end |
Instance Method Details
#last_result(retries: 5) ⇒ Object
Carrega e retorna o conteúdo do resultado da última busca efetuada.
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/enem_solicitacao/gateway.rb', line 41 def last_result(retries: 5) page = agent.get(EnemSolicitacao.path('/solicitacao/acompanhar'\ 'Solicitacao.seam')) table = page.search('table#listaSolicitacaoAtendidas').first result = {} table.search('tr').each do |tr| tds = tr.search('td').to_a next if tds.empty? fail('Solicitação em Processamento') unless tds[4].text['Fechado'] result[tds[2].text.strip] = tds[4].search('a').first \ .attributes['href'].value end agent.get(result.sort.last.last).body.strip rescue e warn e. retries -= 1 retry if retries > -1 raise end |
#search_by_cpf(*cpfs) ⇒ Object
Busca resultados pelo CPF. Retorna o conteúdo do arquivo gerado pelo sistema do Inep (formato CSV) em texto puro.
36 37 38 |
# File 'lib/enem_solicitacao/gateway.rb', line 36 def search_by_cpf(*cpfs) request CPF_KIND, 'cpfDecorate:cpfInput', cpfs.join(';') end |
#search_by_registry(*registries) ⇒ Object
Busca resultados pelo número de inscrição. Retorna o conteúdo do arquivo gerado pelo sistema do Inep (formato CSV) em texto puro.
29 30 31 32 |
# File 'lib/enem_solicitacao/gateway.rb', line 29 def search_by_registry(*registries) request REGISTRY_KIND, 'numerosInscricaoDecorate:numerosInscricaoInput', registries.join(';') end |