confirm_archive.rb 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. require './app/app_forms/app_form.rb'
  2. class ConfirmArchive < ApplicationForm
  3. def self.process
  4. @process ||= Application.new('Team Alert') do |event|
  5. # Check reactions
  6. reactions = event.message.reactions
  7. if reactions[Emoji::Y]&.count.to_i > 1
  8. approve(event)
  9. elsif reactions[Emoji::N]&.count.to_i > 1
  10. deny(event)
  11. end
  12. #rescue StandardError => e
  13. #error_embed(e.message)
  14. end
  15. end
  16. def self.approve(event)
  17. app = event.message.embeds.first
  18. character = Character.find(app.footer.text.to_i)
  19. # Check users that reacted, execute on authorized user
  20. ys = event.message.reacted_with(Emoji::Y)
  21. ys.each do |y|
  22. member = event.server.member(y.id)
  23. if character.user_id = y.id || Util::Roles.admin?(member)
  24. char_teams = CharTeam.where(char_id: character.id)
  25. char_teams.each do |ct|
  26. team = Team.find(ct.team_id)
  27. team.leave(character)
  28. end
  29. binding.pry
  30. character.update(active: 'Archived')
  31. embed = success_embed("Successfully Archived #{character.name}")
  32. event.message.delete
  33. [BotResponse.new(destination: ENV['APP_CH'], embed: embed),
  34. BotResponse.new(embed: embed)]
  35. end
  36. end
  37. end
  38. def self.deny(event)
  39. app = event.message.embeds.first
  40. character = Character.find(app.footer.text.to_i)
  41. ns = event.message.reacted_with(Emoji::N)
  42. ns.each do |n|
  43. member = event.server.member(n.id)
  44. event.message.delete if character.user_id = n.id || Util::Roles.admin?(member)
  45. end
  46. end
  47. end