dtaniwaki/e2e-tester

View on GitHub
app/controllers/browserstack_credentials_controller.rb

Summary

Maintainability
A
55 mins
Test Coverage
class BrowserstackCredentialsController < BaseController
  def create
    @credential = current_user.build_browserstack_credential(browserstack_permitted_params)
    authorize @credential

    if @credential.save
      flash[:notice] = t('shared.create_success', target: UserCredential::Browserstack.model_name.human)
    else
      flash[:alert] = t('shared.update_failure', target: UserCredential::Browserstack.model_name.human, errors: @credential.errors.full_messages.join(', '))
    end

    redirect_to origin || user_credentials_path
  end

  def update
    @credential = current_user.browserstack_credential
    @credential.assign_attributes(browserstack_permitted_params)
    authorize @credential

    if @credential.save
      flash[:notice] = t('shared.update_success', target: UserCredential::Browserstack.model_name.human)
    else
      flash[:alert] = t('shared.update_failure', target: UserCredential::Browserstack.model_name.human, errors: @credential.errors.full_messages.join(', '))
    end
    redirect_to origin || user_credentials_path
  end

  def destroy
    @credential = current_user.browserstack_credential
    if @credential
      authorize @credential

      @credential.destroy!
      flash[:notice] = t('shared.destroy_success', target: UserCredential::Browserstack.model_name.human)
    end

    redirect_to origin || user_credentials_path
  end

  private

  def browserstack_permitted_params
    params.require(:browserstack).permit(:username, :password)
  end
end