# frozen_string_literal: true class SearchesController < ApplicationController before_action :set_search, only: %i[show edit update destroy] def index current_user.update!(last_search_id: nil) @search = Search.new end def show current_user.update!(last_search_id: @search.id) end def new @search = Search.new @subtitle = I18n.t('searches.title') end def edit; end def create @search = Search.new(search_params) @search.user_id = @current_user.id if @search.save redirect_to @search else render :new, status: :unprocessable_content end end def update if @search.update(search_params) redirect_to @search, status: :see_other else render :edit, status: :unprocessable_content end end def destroy @search.destroy! redirect_to searches_url, status: :see_other end def search @search = Search.new @search.body = params.permit(:body).fetch(:body, '') render 'search', partial: true, locals: { items: @search.results } end protected def set_search @search = Search.find(params[:id]) @subtitle = @search.name end def search_params params.expect(search: %i[name body description shared]) end end