Commit efb994a0b620edea70f552af4cef3afb2fb205e9
Committed by
David Silva
1 parent
fd3d68ce
Exists in
master
and in
5 other branches
Remove institution dead code
Signed-off-by: Fabio Teixeira <fabio1079@gmail.com>
Showing
5 changed files
with
0 additions
and
152 deletions
Show diff stats
bin/update_institutions
config/institutions_update.example
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 |