admin.rb 939 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. class CustomWizard::AdminController < ::ApplicationController
  2. before_filter :ensure_logged_in
  3. before_filter :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. wizard["id"] = SecureRandom.hex(8) if !wizard["id"]
  11. PluginStore.set('custom_wizards', wizard["id"], wizard)
  12. render json: success_json
  13. end
  14. def remove
  15. params.require(:id)
  16. PluginStore.remove('custom_wizards', params[:id])
  17. render json: success_json
  18. end
  19. def find
  20. params.require(:id)
  21. wizard = PluginStore.get('custom_wizards', params[:id])
  22. render json: success_json.merge(wizard: wizard)
  23. end
  24. def all
  25. rows = PluginStoreRow.where(plugin_name: 'custom_wizards').order(:id)
  26. wizards = rows ? [*rows].map do |r|
  27. CustomWizard::Wizard.new(r.value)
  28. end : []
  29. render json: success_json.merge(wizards: wizards)
  30. end
  31. end