48 lines
1.3 KiB
Ruby
48 lines
1.3 KiB
Ruby
require_relative "./csrf.rb"
|
|
require_relative "./auth.rb"
|
|
|
|
class LifePex::Systems::RecallSystem < LifePex::Systems::AuthSystem
|
|
include LifePex::Systems::CrlfHelper
|
|
|
|
get "/recalls", auth: [] do
|
|
recalls = current_user.recalls
|
|
slim :recalls, locals: { recalls: recalls }
|
|
end
|
|
|
|
get "/recalls/new", auth: [] do
|
|
pexs = current_user.pexs
|
|
slim :recall_form, locals: { pexs: pexs }
|
|
end
|
|
|
|
post "/recalls", auth: [] do
|
|
flash = {}
|
|
if !LifePex::Pex.where(user_id: current_user_id, id: params["pex_id"]).first
|
|
flash[:danger] = "Invalid pex"
|
|
else
|
|
recall = LifePex::Recall.new(
|
|
user_id: current_user_id,
|
|
pex_id: params["pex_id"],
|
|
name: params["name"],
|
|
span_duration: params["span_duration"],
|
|
repeated: params["repeated"],
|
|
).save
|
|
flash[:success] = "Recall #{recall.name} created"
|
|
end
|
|
recalls = current_user.recalls
|
|
slim :recalls, locals: { recalls: recalls, flash: flash }
|
|
end
|
|
|
|
post "/recalls/delete", auth: [] do
|
|
recall = LifePex::Recall.where(user_id: current_user_id, id: params["id"]).first
|
|
flash = {}
|
|
if recall
|
|
recall.destroy
|
|
flash[:success] = "Recall #{recall.name} removed"
|
|
else
|
|
flash[:danger] = "Recall do not exists"
|
|
end
|
|
recalls = current_user.recalls
|
|
slim :recalls, locals: { recalls: recalls, flash: flash }
|
|
end
|
|
end
|