class Api::V1::Widget::InboxesController < Api::BaseController before_action :authorize_request before_action :set_web_widget_channel, only: [:update] before_action :set_inbox, only: [:update] def create ActiveRecord::Base.transaction do channel = web_widgets.create!( website_name: permitted_params[:website][:website_name], website_url: permitted_params[:website][:website_url], widget_color: permitted_params[:website][:widget_color] ) @inbox = inboxes.create!(name: permitted_params[:website][:website_name], channel: channel) end end def update @channel.update!( widget_color: permitted_params[:website][:widget_color] ) end private def authorize_request authorize ::Inbox end def inboxes current_account.inboxes end def web_widgets current_account.web_widgets end def set_web_widget_channel @channel = web_widgets.find_by(id: permitted_params[:id]) end def set_inbox @inbox = @channel.inbox end def permitted_params params.permit(:id, website: [:website_name, :website_url, :widget_color]) end end