Module: WorkItems::WidgetableService
- Included in:
- CreateService, UpdateService
- Defined in:
- app/services/concerns/work_items/widgetable_service.rb
Instance Method Summary collapse
-
#execute_widgets(work_item:, callback:, widget_params: {}, service_params: {}) ⇒ Object
rubocop:enable Gitlab/ModuleWithInstanceVariables.
-
#initialize_callbacks!(work_item) ⇒ Object
rubocop:disable Gitlab/ModuleWithInstanceVariables.
-
#widget_service(widget, service_params) ⇒ Object
rubocop:disable Gitlab/ModuleWithInstanceVariables.
-
#widget_service_class(widget) ⇒ Object
rubocop:enable Gitlab/ModuleWithInstanceVariables.
Instance Method Details
#execute_widgets(work_item:, callback:, widget_params: {}, service_params: {}) ⇒ Object
rubocop:enable Gitlab/ModuleWithInstanceVariables
25 26 27 28 29 |
# File 'app/services/concerns/work_items/widgetable_service.rb', line 25 def (work_item:, callback:, widget_params: {}, service_params: {}) work_item..each do || (, service_params).try(callback, params: [.class.api_symbol] || {}) end end |
#initialize_callbacks!(work_item) ⇒ Object
rubocop:disable Gitlab/ModuleWithInstanceVariables
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'app/services/concerns/work_items/widgetable_service.rb', line 6 def initialize_callbacks!(work_item) @callbacks = work_item..filter_map do || callback_class = .class.try(:callback_class) callback_params = @widget_params[.class.api_symbol] if () callback_params = {} if callback_params.nil? callback_params[:excluded_in_new_type] = true end next if callback_class.nil? || callback_params.blank? callback_class.new(issuable: work_item, current_user: current_user, params: callback_params) end @callbacks.each(&:after_initialize) end |
#widget_service(widget, service_params) ⇒ Object
rubocop:disable Gitlab/ModuleWithInstanceVariables
32 33 34 35 36 37 38 39 40 41 |
# File 'app/services/concerns/work_items/widgetable_service.rb', line 32 def (, service_params) @widget_services ||= {} return @widget_services[] if @widget_services.has_key?() @widget_services[] = ()&.new( widget: , current_user: current_user, service_params: service_params ) end |
#widget_service_class(widget) ⇒ Object
rubocop:enable Gitlab/ModuleWithInstanceVariables
44 45 46 47 48 |
# File 'app/services/concerns/work_items/widgetable_service.rb', line 44 def () "WorkItems::Widgets::#{.type.to_s.camelize}Service::#{self.class.name.demodulize}".constantize rescue NameError nil end |