41 lines
1.2 KiB
Ruby
41 lines
1.2 KiB
Ruby
class FairyController < ApplicationController
|
|
def mark
|
|
instance_id, location = mark_params
|
|
instance = Instance.find_by(public_id: instance_id)
|
|
if params[:pwd]
|
|
fairy = Fairy.new(location: location, instance_id: instance.id)
|
|
fairy.save
|
|
end
|
|
|
|
new_instance = Instance.includes(:fairies).find(instance.id)
|
|
render partial: "instance/fairies", locals: { instance: new_instance }
|
|
end
|
|
|
|
def unmark
|
|
instance_id, location = mark_params
|
|
if params[:pwd]
|
|
instance = Instance.find_by(public_id: instance_id)
|
|
Fairy.delete_by(instance_id: instance.id, location: location)
|
|
new_instance = Instance.includes(:fairies).find(instance.id)
|
|
render partial: "instance/fairies", locals: { instance: new_instance }
|
|
end
|
|
end
|
|
|
|
def despawn
|
|
instance_id, location = mark_params
|
|
instance = Instance.find_by(public_id: instance_id)
|
|
fairy = Fairy.find_by(instance_id: instance.id, location: location)
|
|
unless fairy.is_despawned
|
|
fairy.is_despawned = true
|
|
fairy.save
|
|
new_instance = Instance.includes(:fairies).find(instance.id)
|
|
render partial: "instance/fairies", locals: { instance: new_instance }
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def mark_params
|
|
params.expect(:instance, :location)
|
|
end
|
|
end
|