diff --git a/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb b/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb index 3f4a2f1..c061db0 100644 --- a/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb +++ b/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb @@ -43,34 +43,22 @@ class MezuroPluginMyprofileController < ProfileController end def create_metric_configuration - metric_configuration = new_metric_configuration_instance - generic_metric_configuration_creation(metric_configuration) + generic_metric_configuration_creation(new_metric_configuration_instance) redirect_to "/#{profile.identifier}/#{@configuration_name.downcase.gsub(/\s/, '-')}" end def create_compound_metric_configuration - compound_metric_configuration = new_compound_metric_configuration_instance - generic_metric_configuration_creation(compound_metric_configuration) + generic_metric_configuration_creation(new_compound_metric_configuration_instance) redirect_to "/#{profile.identifier}/#{@configuration_name.downcase.gsub(/\s/, '-')}" end def update_metric_configuration - @configuration_name = params[:configuration_name] - metric_name = params[:metric_configuration][:metric][:name] - metric_configuration_client = Kalibro::Client::MetricConfigurationClient.new - metric_configuration = metric_configuration_client.metric_configuration(@configuration_name, metric_name) - metric_configuration = assign_metric_configuration_instance(metric_configuration) - metric_configuration_client.save(metric_configuration, @configuration_name) + auxiliar_update_metric_configuration(MezuroPlugin::MetricConfigurationContent::NATIVE_TYPE) redirect_to "/#{profile.identifier}/#{@configuration_name.downcase.gsub(/\s/, '-')}" end def update_compound_metric_configuration - @configuration_name = params[:configuration_name] - metric_configuration_client = Kalibro::Client::MetricConfigurationClient.new - metric_name = params[:metric_configuration][:metric][:name] - compound_metric_configuration = metric_configuration_client.metric_configuration(@configuration_name, metric_name) - compound_metric_configuration = assign_compound_metric_configuration_instance(compound_metric_configuration) - metric_configuration_client.save(compound_metric_configuration, @configuration_name) + auxiliar_update_metric_configuration(MezuroPlugin::MetricConfigurationContent::COMPOUND_TYPE) redirect_to "/#{profile.identifier}/#{@configuration_name.downcase.gsub(/\s/, '-')}" end @@ -140,41 +128,44 @@ class MezuroPluginMyprofileController < ProfileController def new_metric_configuration_instance metric_configuration = Kalibro::Entities::MetricConfiguration.new metric_configuration.metric = Kalibro::Entities::NativeMetric.new - assign_metric_configuration_instance (metric_configuration) + assign_metric_configuration_instance(metric_configuration, MezuroPlugin::MetricConfigurationContent::NATIVE_TYPE) end def new_compound_metric_configuration_instance metric_configuration = Kalibro::Entities::MetricConfiguration.new metric_configuration.metric = Kalibro::Entities::CompoundMetric.new - assign_compound_metric_configuration_instance (metric_configuration) + assign_metric_configuration_instance(metric_configuration, MezuroPlugin::MetricConfigurationContent::COMPOUND_TYPE) end - def assign_metric_configuration_instance(metric_configuration) - assign_generic_metric_configuration(metric_configuration) - metric_configuration.metric.origin = params[:metric_configuration][:metric][:origin] - metric_configuration.metric.language = params[:metric_configuration][:metric][:language] - metric_configuration - end - - def assign_compound_metric_configuration_instance(metric_configuration) - assign_generic_metric_configuration(metric_configuration) - metric_configuration.metric.script = params[:metric_configuration][:metric][:script] - metric_configuration - end - - def assign_generic_metric_configuration(metric_configuration) + def assign_metric_configuration_instance(metric_configuration, type=MezuroPlugin::MetricConfigurationContent::NATIVE_TYPE) metric_configuration.metric.name = params[:metric_configuration][:metric][:name] metric_configuration.metric.description = params[:metric_configuration][:metric][:description] metric_configuration.metric.scope = params[:metric_configuration][:metric][:scope] metric_configuration.code = params[:metric_configuration][:code] metric_configuration.weight = params[:metric_configuration][:weight] metric_configuration.aggregation_form = params[:metric_configuration][:aggregation_form] + + if type == MezuroPlugin::MetricConfigurationContent::NATIVE_TYPE + metric_configuration.metric.origin = params[:metric_configuration][:metric][:origin] + metric_configuration.metric.language = params[:metric_configuration][:metric][:language] + elsif type == MezuroPlugin::MetricConfigurationContent::COMPOUND_TYPE + metric_configuration.metric.script = params[:metric_configuration][:metric][:script] + end end def generic_metric_configuration_creation(metric_configuration) @configuration_name = params[:configuration_name] Kalibro::Client::MetricConfigurationClient.new.save(metric_configuration, @configuration_name) end + + def auxiliar_update_metric_configuration(type) + @configuration_name = params[:configuration_name] + metric_name = params[:metric_configuration][:metric][:name] + metric_configuration_client = Kalibro::Client::MetricConfigurationClient.new + metric_configuration = metric_configuration_client.metric_configuration(@configuration_name, metric_name) + metric_configuration = assign_metric_configuration_instance(metric_configuration, type) + metric_configuration_client.save(metric_configuration, @configuration_name) + end def new_range_instance range = Kalibro::Entities::Range.new diff --git a/plugins/mezuro/lib/mezuro_plugin/metric_configuration_content.rb b/plugins/mezuro/lib/mezuro_plugin/metric_configuration_content.rb index 9f7f6dd..30f3f74 100644 --- a/plugins/mezuro/lib/mezuro_plugin/metric_configuration_content.rb +++ b/plugins/mezuro/lib/mezuro_plugin/metric_configuration_content.rb @@ -1,5 +1,8 @@ class MezuroPlugin::MetricConfigurationContent < Article + NATIVE_TYPE='native' + COMPOUND_TYPE='compound' + def self.short_description 'Kalibro Configurated Metric' end -- libgit2 0.21.2