SUSE/hackweek

View on GitHub
app/controllers/keywords_controller.rb

Summary

Maintainability
A
0 mins
Test Coverage
class KeywordsController < ApplicationController
  skip_before_action :authenticate_user!, only: %i[index show]
  before_action :load_keyword, only: %i[show edit update]

  def index
    @keywords = Keyword.find_keyword("%#{params[:query]}%").by_episode(@episode).order(:name).distinct.page(params[:page]).per(params[:page_size])
    @popular_keywords = Keyword.popular(@episode, 10)
  end

  def show
    @projects = Project.by_episode(@episode).by_keyword(@keyword).includes(:originator, :users, :kudos).page(params[:page]).per(params[:page_size])
    render 'projects/index'
  end

  # GET /keywords/1/edit
  def edit; end

  # PATCH/PUT /keywords/javascript
  def update
    if @keyword.update(keyword_params)
      redirect_to(keyword_url(@episode, name: @keyword.name), notice: 'Keyword was successfully updated.')
    else
      render :edit
    end
  end

  private

  def load_keyword
    @keyword = Keyword.find_by!(name: params[:name])
  end

  # Only allow a trusted parameter "white list" through.
  def keyword_params
    params.require(:keyword).permit(:description, :avatar)
  end
end