1# frozen_string_literal: true
2
3class Profiles::KeysController < Profiles::ApplicationController
4  feature_category :users
5
6  def index
7    @keys = current_user.keys.order_id_desc
8    @key = Key.new
9  end
10
11  def show
12    @key = current_user.keys.find(params[:id])
13  end
14
15  def create
16    @key = Keys::CreateService.new(current_user, key_params.merge(ip_address: request.remote_ip)).execute
17
18    if @key.persisted?
19      redirect_to profile_key_path(@key)
20    else
21      @keys = current_user.keys.select(&:persisted?)
22      render :index
23    end
24  end
25
26  def destroy
27    @key = current_user.keys.find(params[:id])
28    Keys::DestroyService.new(current_user).execute(@key)
29
30    respond_to do |format|
31      format.html { redirect_to profile_keys_url, status: :found }
32      format.js { head :ok }
33    end
34  end
35
36  private
37
38  def key_params
39    params.require(:key).permit(:title, :key, :expires_at)
40  end
41end
42