admin.rb 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. class CustomWizard::AdminController < ::ApplicationController
  2. before_action :ensure_logged_in
  3. before_action :ensure_admin
  4. def index
  5. render nothing: true
  6. end
  7. def save
  8. params.require(:wizard)
  9. wizard = ::JSON.parse(params[:wizard])
  10. saved = false
  11. if wizard["existing_id"] && rows = PluginStoreRow.where(plugin_name: 'custom_wizard').order(:id)
  12. rows.each do |r, i|
  13. wizard = CustomWizard::Wizard.new(r.value)
  14. if wizard.id = wizard["existing_id"]
  15. r.update_all(key: wizard['id'], value: wizard)
  16. saved = true
  17. end
  18. end
  19. end
  20. unless saved
  21. PluginStore.set('custom_wizard', wizard["id"], wizard)
  22. end
  23. render json: success_json
  24. end
  25. def remove
  26. params.require(:id)
  27. PluginStore.remove('custom_wizard', params[:id])
  28. render json: success_json
  29. end
  30. def find
  31. params.require(:id)
  32. wizard = PluginStore.get('custom_wizard', params[:id])
  33. render json: success_json.merge(wizard: wizard)
  34. end
  35. def all
  36. rows = PluginStoreRow.where(plugin_name: 'custom_wizard').order(:id)
  37. wizards = rows ? [*rows].map do |r|
  38. CustomWizard::Wizard.new(r.value)
  39. end : []
  40. render json: success_json.merge(wizards: wizards)
  41. end
  42. end