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