feat: support cloning instances

This commit is contained in:
insects 2025-03-12 13:21:38 +01:00
parent 5914b85fc6
commit 5aa5fe0f5a
5 changed files with 27 additions and 1 deletions

View file

@ -58,6 +58,20 @@ class InstanceController < ApplicationController
end
end
def clone
instance = clone_instance_params
i = Instance.find_by(public_id: instance)
new_inst = i.deep_clone(include: [ :fairies, :pops ])
new_inst.public_id = Nanoid.generate(size: 6)
new_inst.password = Nanoid.generate(size: 4, alphabet: "0123456789")
new_inst.name = Spicy::Proton.pair(" ")
if new_inst.save
@id = new_inst.public_id
@password = new_inst.password
render "set_password"
end
end
def show
@instance = Instance.includes(:pops, :fairies).find_by(public_id: show_instance_params)
if @instance
@ -125,6 +139,10 @@ class InstanceController < ApplicationController
params.expect(:info)
end
def clone_instance_params
params.expect(:instance)
end
def show_instance_params
params.expect(:public_id)
end