feat: support cloning instances
This commit is contained in:
parent
5914b85fc6
commit
5aa5fe0f5a
5 changed files with 27 additions and 1 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue