Class: BarraAplicacoes

Inherits:
Object
  • Object
show all
Defined in:
app/models/barra_aplicacoes.rb

Overview

Classe responsável por consumir a API BarrasUff e retornar a lista de aplicações que devem aparecer na barra de aplicações.

Class Method Summary collapse

Class Method Details

.carrega_aplicacoes(iduff) ⇒ Object



6
7
8
9
10
11
12
13
14
# File 'app/models/barra_aplicacoes.rb', line 6

def self.carrega_aplicacoes(iduff)
  Rails.cache.fetch("#{iduff}/links_barras", expires_in: 1.hour) do
    apps = JSON(open(url_api(iduff)).read)
    apps.each { |app| app['url'] = url_de_desenv_e_homolog(app['url']) }
  end
rescue
  Rails.cache.delete("#{iduff}/links_barras")
  nil
end

.url_api(iduff) ⇒ Object



16
17
18
19
20
21
# File 'app/models/barra_aplicacoes.rb', line 16

def self.url_api(iduff)
  url_api_barras = BarrasRails.configuracao.url_api_barras
  raise UrlApiNaoDefinidaError if url_api_barras.blank?
  url_api_barras = url_de_desenv_e_homolog(url_api_barras)
  "#{url_api_barras}?iduff=#{iduff}&token=#{BarrasRails.configuracao.token}"
end

.url_de_desenv_e_homolog(url) ⇒ Object

Troca uma url de um sistema da STI de “app.uff.br” para “homologacao.sti.uff.br”, para funcionar em homolog. Os sistemas e sites que não foram desse domínio app.uff.br não serão afetados



26
27
28
29
30
# File 'app/models/barra_aplicacoes.rb', line 26

def self.url_de_desenv_e_homolog(url)
  return url if Rails.env == 'production'
  return url unless url.match %r{https?://app\.uff\.br}
  url.sub('app.uff.br', 'homologacao.sti.uff.br')
end