diff --git a/bin/update_institutions b/bin/update_institutions deleted file mode 100644 index 9cbc71a..0000000 --- a/bin/update_institutions +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env ruby -# encoding: utf-8 -require "net/http" -include InstitutionHelper - -InstitutionHelper.mass_update diff --git a/config/institutions_update.example b/config/institutions_update.example deleted file mode 100644 index 5f73ecc..0000000 --- a/config/institutions_update.example +++ /dev/null @@ -1,4 +0,0 @@ -# This file is an example for a crontab file used to update insitutions from -# the web service, SIORG. - -@weekly root cd /usr/share/noosfero && rails runner plugins/mpog_software/bin/update_institutions diff --git a/config/siorg.yml b/config/siorg.yml deleted file mode 100644 index e87e656..0000000 --- a/config/siorg.yml +++ /dev/null @@ -1,11 +0,0 @@ -web_service: - base_url: http://estruturaorganizacional.dados.gov.br/doc/estrutura-organizacional/resumida.json - sphere_codes: - federal: 1 - power_codes: - executive: 1 - legislative: 2 - judiciary: 3 - additional_params: retornarOrgaoEntidadeVinculados=NAO - environment_name: Noosfero - default_community_admin: adminuser \ No newline at end of file diff --git a/lib/institution_helper.rb b/lib/institution_helper.rb deleted file mode 100644 index 117c839..0000000 --- a/lib/institution_helper.rb +++ /dev/null @@ -1,106 +0,0 @@ -require "net/http" -require "yaml" - -module InstitutionHelper - - SPHERES = ['federal'] - POWERS = ['executive', 'legislative', 'judiciary'] - - def self.mass_update - @web_service_info = self.web_service_info - - environment = Environment.find_by_name(@web_service_info["environment_name"]) - - if environment.nil? - return - end - - admin = environment.people.find_by_name(@web_service_info["default_community_admin"]) - - if admin.nil? - return - end - - POWERS.each do |power| - SPHERES.each do |sphere| - json = self.get_json power, sphere - - units = json["unidades"] - - units.each do |unit| - institution = PublicInstitution.where(:name=>unit["nome"]) - - institution = if institution.count == 0 - PublicInstitution::new - else - institution.first - end - - institution = self.set_institution_data institution, unit - institution.save - institution.community.add_admin(admin) - end - end - end - end - - def self.register_institution_modification institution - institution.date_modification = current_date - institution.save - end - - protected - - def self.web_service_info - YAML.load_file(File.dirname(__FILE__) + '/../config/siorg.yml')['web_service'] - end - - def self.service_url power, sphere - base_url = @web_service_info['base_url'] - power_code = @web_service_info['power_codes'][power].to_s - sphere_code = @web_service_info['sphere_codes'][sphere].to_s - additional_params = @web_service_info['additional_params'] - - return URI("#{base_url}?codigoPoder=#{power_code}&codigoEsfera=#{sphere_code}&#{additional_params}") - end - - def self.get_json power, sphere - uri = self.service_url power, sphere #URI(BASE_URL+"codigoPoder=#{power_code}&codigoEsfera=#{sphere_code}&retornarOrgaoEntidadeVinculados=NAO") - data = Net::HTTP.get(uri) - ActiveSupport::JSON.decode(data) - end - - def self.retrieve_code unit, field - data = unit[field] - return data.split("/").last unless (data.blank? || data.nil?) - return nil - end - - def self.set_institution_data institution, unit - - community = if Community.where(:name=>unit["nome"]).length != 0 - Community.where(:name=>unit["nome"]).first - else - Community.new :name=>unit["nome"] - end - - institution.community = community - institution.name = unit["nome"] - institution.acronym = unit["sigla"] - institution.unit_code = self.retrieve_code(unit,"codigoUnidade") - institution.parent_code = self.retrieve_code(unit,"codigoUnidadePai") - institution.unit_type = self.retrieve_code(unit,"codigoTipoUnidade") - institution.juridical_nature = JuridicalNature.where(:name=>self.retrieve_code(unit,"codigoNaturezaJuridica").titleize).first - institution.sub_juridical_nature = self.retrieve_code(unit,"codigoSubNaturezaJuridica") - institution.normalization_level = unit["nivelNormatizacao"] - institution.version = unit["versaoConsulta"] - institution.governmental_power = GovernmentalPower.where(:name=>self.retrieve_code(unit,"codigoPoder").capitalize).first - institution.governmental_sphere = GovernmentalSphere.where(:name=>self.retrieve_code(unit,"codigoEsfera").capitalize).first - institution - end - - def self.current_date - date = Time.now.day.to_s + "/" + Time.now.month.to_s + "/" + Time.now.year.to_s - date - end -end diff --git a/test/integration/institution_helper_test.rb b/test/integration/institution_helper_test.rb deleted file mode 100644 index 4aa8971..0000000 --- a/test/integration/institution_helper_test.rb +++ /dev/null @@ -1,25 +0,0 @@ -require File.dirname(__FILE__) + '/../../../../test/test_helper' - -class InstitutionHelperTest < ActionController::IntegrationTest - - def setup - admin = create_user("test_admin").person - admin.stubs(:has_permission?).returns("true") - - @environment = Environment.default - @environment.enabled_plugins = ['MpogSoftwarePlugin'] - @environment.add_admin(admin) - @environment.name = "test_environment" - @environment.save - end - - should "not proceed with SIORG script if environment name isn't the informed" do - assert !InstitutionHelper.mass_update, "Should not find the environment." - end - should "not proceed with SIORG script if admin name isn't the informed" do - @environment.name = "Noosfero" - @environment.save - - assert !InstitutionHelper.mass_update, "Could not find the admin." - end -end -- libgit2 0.21.2