module MnoEnterprise::Concerns::Controllers::Jpi::V1::Impac::WidgetsController

Public Instance Methods

create() click to toggle source

POST /mnoe/jpi/v1/impac/dashboards/:id/widgets

-> POST /api/mnoe/v1/dashboards/:id/widgets
# File lib/mno_enterprise/concerns/controllers/jpi/v1/impac/widgets_controller.rb, line 25
def create
  if widgets
    authorize! :create_impac_widgets, widgets.build(widget_create_params)

    if @widget = widgets.create(widget_create_params)
      MnoEnterprise::EventLogger.info('widget_create', current_user.id, 'Widget Creation', widget)
      @nocontent = true # no data fetch from Connec!
      render 'show'
    else
      render_bad_request('create widget', @widget.errors)
    end
  else
    render_not_found('widget')
  end
end
destroy() click to toggle source

DELETE /mnoe/jpi/v1/impac/widgets/:id

-> DELETE /api/mnoe/v1/widgets/:id
# File lib/mno_enterprise/concerns/controllers/jpi/v1/impac/widgets_controller.rb, line 57
def destroy
  authorize! :destroy_impac_widgets, widget

  if widget.destroy
    MnoEnterprise::EventLogger.info('widget_delete', current_user.id, 'Widget Deletion', widget)
    head status: :ok
  else
    render_bad_request('destroy widget', 'Unable to destroy widget')
  end
end
index() click to toggle source
Instance methods
GET /mnoe/jpi/v1/impac/organizations/:organization_id/widgets
 -> GET /api/mnoe/v1/organizations/:id/widgets
# File lib/mno_enterprise/concerns/controllers/jpi/v1/impac/widgets_controller.rb, line 18
def index
  render_not_found('organization') unless parent_organization
  @widgets = parent_organization.widgets
end
update() click to toggle source

PUT /mnoe/jpi/v1/impac/widgets/:id

-> PUT /api/mnoe/v1/widgets/:id
# File lib/mno_enterprise/concerns/controllers/jpi/v1/impac/widgets_controller.rb, line 43
def update
  authorize! :update_impac_widgets, widget

  if widget.update(widget_update_params)
    MnoEnterprise::EventLogger.info('widget_update', current_user.id, 'Widget Update', widget, {widget_action: params[:widget]})
    @nocontent = !params['metadata']
    render 'show'
  else
    render_bad_request('update widget', @widget.errors)
  end
end

Private Instance Methods

parent_dashboard() click to toggle source
# File lib/mno_enterprise/concerns/controllers/jpi/v1/impac/widgets_controller.rb, line 78
def parent_dashboard
  @parent_dashboard ||= MnoEnterprise::Impac::Dashboard.find(params[:dashboard_id])
end
widget() click to toggle source
Private methods
# File lib/mno_enterprise/concerns/controllers/jpi/v1/impac/widgets_controller.rb, line 74
def widget
  @widget ||= MnoEnterprise::Impac::Widget.find(params[:id])
end
widget_create_params() click to toggle source
# File lib/mno_enterprise/concerns/controllers/jpi/v1/impac/widgets_controller.rb, line 86
def widget_create_params
  permitted_attrs = [:endpoint, :name, :width, { layouts: [] }]
  params.require(:widget).permit(*permitted_attrs).tap do |whitelisted|
    whitelisted[:settings] = params[:widget][:metadata] || {}
    whitelisted[:settings][:organization_ids] ||= parent_dashboard.settings[:organization_ids]
    # TODO: remove when mnohub migrated to new model
    whitelisted[:widget_category] = params[:widget][:endpoint]
  end
  .except(:metadata)
end
widget_update_params() click to toggle source
# File lib/mno_enterprise/concerns/controllers/jpi/v1/impac/widgets_controller.rb, line 97
def widget_update_params
  params.require(:widget).permit(:name, :width).tap do |whitelisted|
    whitelisted[:settings] = params[:widget][:metadata] || {}
  end
  .except(:metadata)
end
widgets() click to toggle source
# File lib/mno_enterprise/concerns/controllers/jpi/v1/impac/widgets_controller.rb, line 82
def widgets
  @widgets ||= parent_dashboard.widgets
end