class EnemSolicitacao::Gateway

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.

Constants

CPF_KIND
REGISTRY_KIND

Public Class Methods

new(session, year = EnemSolicitacao.year) click to toggle source

Construtor.

`session`: Sessão para autenticação no sistema
`year`: Ano de referência para as consultas.
# File lib/enem_solicitacao/gateway.rb, line 22
def initialize(session, year = EnemSolicitacao.year)
  @session = session
  @year    = year
end

Public Instance Methods

last_result(retries: 5) click to toggle source

Carrega e retorna o conteúdo do resultado da última busca efetuada.

# 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.message
  retries -= 1
  retry if retries > -1
  raise
end
search_by_cpf(*cpfs) click to toggle source

Busca resultados pelo CPF. Retorna o conteúdo do arquivo gerado pelo sistema do Inep (formato CSV) em texto puro.

# 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) click to toggle source

Busca resultados pelo número de inscrição. Retorna o conteúdo do arquivo gerado pelo sistema do Inep (formato CSV) em texto puro.

# File lib/enem_solicitacao/gateway.rb, line 29
def search_by_registry(*registries)
  request REGISTRY_KIND, 'numerosInscricaoDecorate:numerosInscricaoInput',
          registries.join(';')
end