Commit efb994a0b620edea70f552af4cef3afb2fb205e9

Authored by Fabio Teixeira
Committed by David Silva
1 parent fd3d68ce

Remove institution dead code

Signed-off-by: Fabio Teixeira <fabio1079@gmail.com>
bin/update_institutions
... ... @@ -1,6 +0,0 @@
1   -#!/usr/bin/env ruby
2   -# encoding: utf-8
3   -require "net/http"
4   -include InstitutionHelper
5   -
6   -InstitutionHelper.mass_update
config/institutions_update.example
... ... @@ -1,4 +0,0 @@
1   -# This file is an example for a crontab file used to update insitutions from
2   -# the web service, SIORG.
3   -
4   -@weekly root cd /usr/share/noosfero && rails runner plugins/mpog_software/bin/update_institutions
config/siorg.yml
... ... @@ -1,11 +0,0 @@
1   -web_service:
2   - base_url: http://estruturaorganizacional.dados.gov.br/doc/estrutura-organizacional/resumida.json
3   - sphere_codes:
4   - federal: 1
5   - power_codes:
6   - executive: 1
7   - legislative: 2
8   - judiciary: 3
9   - additional_params: retornarOrgaoEntidadeVinculados=NAO
10   - environment_name: Noosfero
11   - default_community_admin: adminuser
12 0 \ No newline at end of file
lib/institution_helper.rb
... ... @@ -1,106 +0,0 @@
1   -require "net/http"
2   -require "yaml"
3   -
4   -module InstitutionHelper
5   -
6   - SPHERES = ['federal']
7   - POWERS = ['executive', 'legislative', 'judiciary']
8   -
9   - def self.mass_update
10   - @web_service_info = self.web_service_info
11   -
12   - environment = Environment.find_by_name(@web_service_info["environment_name"])
13   -
14   - if environment.nil?
15   - return
16   - end
17   -
18   - admin = environment.people.find_by_name(@web_service_info["default_community_admin"])
19   -
20   - if admin.nil?
21   - return
22   - end
23   -
24   - POWERS.each do |power|
25   - SPHERES.each do |sphere|
26   - json = self.get_json power, sphere
27   -
28   - units = json["unidades"]
29   -
30   - units.each do |unit|
31   - institution = PublicInstitution.where(:name=>unit["nome"])
32   -
33   - institution = if institution.count == 0
34   - PublicInstitution::new
35   - else
36   - institution.first
37   - end
38   -
39   - institution = self.set_institution_data institution, unit
40   - institution.save
41   - institution.community.add_admin(admin)
42   - end
43   - end
44   - end
45   - end
46   -
47   - def self.register_institution_modification institution
48   - institution.date_modification = current_date
49   - institution.save
50   - end
51   -
52   - protected
53   -
54   - def self.web_service_info
55   - YAML.load_file(File.dirname(__FILE__) + '/../config/siorg.yml')['web_service']
56   - end
57   -
58   - def self.service_url power, sphere
59   - base_url = @web_service_info['base_url']
60   - power_code = @web_service_info['power_codes'][power].to_s
61   - sphere_code = @web_service_info['sphere_codes'][sphere].to_s
62   - additional_params = @web_service_info['additional_params']
63   -
64   - return URI("#{base_url}?codigoPoder=#{power_code}&codigoEsfera=#{sphere_code}&#{additional_params}")
65   - end
66   -
67   - def self.get_json power, sphere
68   - uri = self.service_url power, sphere #URI(BASE_URL+"codigoPoder=#{power_code}&codigoEsfera=#{sphere_code}&retornarOrgaoEntidadeVinculados=NAO")
69   - data = Net::HTTP.get(uri)
70   - ActiveSupport::JSON.decode(data)
71   - end
72   -
73   - def self.retrieve_code unit, field
74   - data = unit[field]
75   - return data.split("/").last unless (data.blank? || data.nil?)
76   - return nil
77   - end
78   -
79   - def self.set_institution_data institution, unit
80   -
81   - community = if Community.where(:name=>unit["nome"]).length != 0
82   - Community.where(:name=>unit["nome"]).first
83   - else
84   - Community.new :name=>unit["nome"]
85   - end
86   -
87   - institution.community = community
88   - institution.name = unit["nome"]
89   - institution.acronym = unit["sigla"]
90   - institution.unit_code = self.retrieve_code(unit,"codigoUnidade")
91   - institution.parent_code = self.retrieve_code(unit,"codigoUnidadePai")
92   - institution.unit_type = self.retrieve_code(unit,"codigoTipoUnidade")
93   - institution.juridical_nature = JuridicalNature.where(:name=>self.retrieve_code(unit,"codigoNaturezaJuridica").titleize).first
94   - institution.sub_juridical_nature = self.retrieve_code(unit,"codigoSubNaturezaJuridica")
95   - institution.normalization_level = unit["nivelNormatizacao"]
96   - institution.version = unit["versaoConsulta"]
97   - institution.governmental_power = GovernmentalPower.where(:name=>self.retrieve_code(unit,"codigoPoder").capitalize).first
98   - institution.governmental_sphere = GovernmentalSphere.where(:name=>self.retrieve_code(unit,"codigoEsfera").capitalize).first
99   - institution
100   - end
101   -
102   - def self.current_date
103   - date = Time.now.day.to_s + "/" + Time.now.month.to_s + "/" + Time.now.year.to_s
104   - date
105   - end
106   -end
test/integration/institution_helper_test.rb
... ... @@ -1,25 +0,0 @@
1   -require File.dirname(__FILE__) + '/../../../../test/test_helper'
2   -
3   -class InstitutionHelperTest < ActionController::IntegrationTest
4   -
5   - def setup
6   - admin = create_user("test_admin").person
7   - admin.stubs(:has_permission?).returns("true")
8   -
9   - @environment = Environment.default
10   - @environment.enabled_plugins = ['MpogSoftwarePlugin']
11   - @environment.add_admin(admin)
12   - @environment.name = "test_environment"
13   - @environment.save
14   - end
15   -
16   - should "not proceed with SIORG script if environment name isn't the informed" do
17   - assert !InstitutionHelper.mass_update, "Should not find the environment."
18   - end
19   - should "not proceed with SIORG script if admin name isn't the informed" do
20   - @environment.name = "Noosfero"
21   - @environment.save
22   -
23   - assert !InstitutionHelper.mass_update, "Could not find the admin."
24   - end
25   -end