app/controllers/dashboard/accounts_controller.rb
module Dashboard
class AccountsController < DashboardController
def index
@resources = apply_filters(accounts_scope)
@resources = paginate_resources(@resources)
end
def show
@resource = record
end
def new
@resource = initialize_form
end
def create
@resource = initialize_form(permitted_params)
@resource.save
respond_with(:dashboard, @resource)
end
def edit
@resource = AccountForm.initialize_with(record)
end
def update
@resource = initialize_form(permitted_params)
if record.customer_managed?
@resource.name = record.name
@resource.default_tts_voice = record.default_tts_voice
end
@resource.account = record
@resource.save
respond_with(:dashboard, @resource)
end
def destroy
record.destroy
respond_with(:dashboard, record)
end
private
def initialize_form(params = {})
@resource = AccountForm.new(params)
@resource.carrier = current_carrier
@resource.current_user = current_user
@resource
end
def permitted_params
params.require(:account).permit(
:name,
:default_tts_voice,
:owner_name,
:owner_email,
:sip_trunk_id,
:calls_per_second,
:enabled
)
end
def accounts_scope
current_carrier.accounts
end
def record
@record ||= accounts_scope.find(params[:id])
end
end
end