Class: FanforceApp::Sinatra
- Inherits:
-
Sinatra::Base
- Object
- Sinatra::Base
- FanforceApp::Sinatra
- Includes:
- Fanforce::Errors
- Defined in:
- lib/fanforce/app_factory/routes_core.rb,
lib/fanforce/app_factory/_init_sinatra.rb,
lib/fanforce/app_factory/routes_behavior.rb,
lib/fanforce/app_factory/routes_connector.rb,
lib/fanforce/app_factory/routes_js_widget.rb,
lib/fanforce/app_factory/routes_identifier.rb,
lib/fanforce/app_factory/routes_broadcaster.rb,
lib/fanforce/app_factory/config/_error_handling.rb
Constant Summary collapse
- @@static_files =
{}
Class Method Summary collapse
- .any(url, &block) ⇒ Object
- .default_javascript_package(package_name) ⇒ Object
- .require_controllers ⇒ Object
- .static(url, *args, &block) ⇒ Object
Instance Method Summary collapse
- #page(page, options = {}) ⇒ Object
- #route_add_initiative_ui ⇒ Object
- #route_add_source_ui ⇒ Object
- #route_archive_initiative_callback ⇒ Object
- #route_autocreate_initiative_callback ⇒ Object
- #route_close_popup_ui ⇒ Object
- #route_config_ui ⇒ Object
- #route_convert_initiative_ui ⇒ Object
- #route_destroy_initiative_callback ⇒ Object
- #route_edit_initiative_ui ⇒ Object
- #route_engage_page_ui ⇒ Object
- #route_index_ui ⇒ Object
- #route_install_callback ⇒ Object
- #route_new_message_ui ⇒ Object
- #route_ping_pong ⇒ Object
- #route_source_details_ui ⇒ Object
- #route_uninstall_callback ⇒ Object
- #route_widget_templates ⇒ Object
Class Method Details
.any(url, &block) ⇒ Object
21 22 23 24 25 26 |
# File 'lib/fanforce/app_factory/_init_sinatra.rb', line 21 def self.any(url,&block) get(url, &block) put(url, &block) post(url, &block) delete(url, &block) end |
.default_javascript_package(package_name) ⇒ Object
28 29 30 |
# File 'lib/fanforce/app_factory/_init_sinatra.rb', line 28 def self.default_javascript_package(package_name) end |
.require_controllers ⇒ Object
32 33 34 35 |
# File 'lib/fanforce/app_factory/_init_sinatra.rb', line 32 def self.require_controllers require "#{FanforceApp.config.factory_root_dir}/controllers/base_controller" Dir["#{FanforceApp.config.root_dir}/controllers/*_controller.rb"].each {|f| require f } end |
.static(url, *args, &block) ⇒ Object
38 39 40 41 |
# File 'lib/fanforce/app_factory/_init_sinatra.rb', line 38 def self.static(url, *args, &block) @@static_files[url] = {args: args, block: block} get(url, &block) end |
Instance Method Details
#page(page, options = {}) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/fanforce/app_factory/_init_sinatra.rb', line 43 def page(page, ={}) gem_dir = Pathname.new(File.('../', __FILE__)) app_dir = Pathname.new(File.('../', settings.views)) app_views_dir = Pathname.new(settings.views) gem_rel_dir = gem_dir.relative_path_from(app_views_dir).to_s gem_abs_dir = File.(gem_rel_dir, app_views_dir) if !File.exists?("#{app_dir}/views/#{page}.haml") if File.exists?("#{app_dir}/views/#{options[:com_dir]}/#{page}.haml") page_path = :"#{options[:com_dir]}/#{page}" else page_path = :"#{gem_rel_dir}/views/#{page}" if File.exists?("#{gem_abs_dir}/views/#{page}.haml") end end page_path ||= page if [:layout] if File.exists?("#{app_dir}/layouts/#{options[:layout]}.haml") [:layout] = :"../layouts/#{options[:layout]}" else [:layout] = :"#{gem_rel_dir}/layouts/#{options[:layout]}" end else [:layout] = false end haml page_path, end |
#route_add_initiative_ui ⇒ Object
3 4 5 |
# File 'lib/fanforce/app_factory/routes_behavior.rb', line 3 def route_add_initiative_ui page :add_initiative, :layout => :add_edit_initiative, com_dir: "#{params[:com_behavior_shortid]}" end |
#route_add_source_ui ⇒ Object
3 4 5 |
# File 'lib/fanforce/app_factory/routes_connector.rb', line 3 def route_add_source_ui page :add_source, :layout => :add_source, com_dir: "#{params[:com_behavior_shortid]}" end |
#route_archive_initiative_callback ⇒ Object
19 20 21 |
# File 'lib/fanforce/app_factory/routes_behavior.rb', line 19 def route_archive_initiative_callback json status: 'finished' end |
#route_autocreate_initiative_callback ⇒ Object
27 28 29 |
# File 'lib/fanforce/app_factory/routes_behavior.rb', line 27 def route_autocreate_initiative_callback json status: 'finished' end |
#route_close_popup_ui ⇒ Object
11 12 13 |
# File 'lib/fanforce/app_factory/routes_core.rb', line 11 def route_close_popup_ui page :close_popup end |
#route_config_ui ⇒ Object
7 8 9 |
# File 'lib/fanforce/app_factory/routes_core.rb', line 7 def route_config_ui page :config, :layout => :config end |
#route_convert_initiative_ui ⇒ Object
7 8 9 |
# File 'lib/fanforce/app_factory/routes_behavior.rb', line 7 def route_convert_initiative_ui page :convert_initiative, :layout => :convert_initiative, com_dir: "#{params[:com_behavior_shortid]}" end |
#route_destroy_initiative_callback ⇒ Object
23 24 25 |
# File 'lib/fanforce/app_factory/routes_behavior.rb', line 23 def route_destroy_initiative_callback json status: 'finished' end |
#route_edit_initiative_ui ⇒ Object
11 12 13 |
# File 'lib/fanforce/app_factory/routes_behavior.rb', line 11 def route_edit_initiative_ui page :edit_initiative, :layout => :add_edit_initiative, com_dir: "#{params[:com_behavior_shortid]}" end |
#route_engage_page_ui ⇒ Object
15 16 17 |
# File 'lib/fanforce/app_factory/routes_behavior.rb', line 15 def route_engage_page_ui page :engage, :layout => :engage, com_dir: "#{params[:com_behavior_shortid]}" end |
#route_index_ui ⇒ Object
3 4 5 |
# File 'lib/fanforce/app_factory/routes_core.rb', line 3 def route_index_ui page :index, :layout => :promotional end |
#route_install_callback ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/fanforce/app_factory/routes_core.rb', line 15 def route_install_callback raise "This is not a valid app install request: #{env['HTTP_HOST']}" if !ff.valid_install_request?(params) api_key = $Redis.get("installed:app-#{ff.params[:app_id]}:#{params[:organization_id]}") if api_key.present? and api_key != params[:api_key] is_valid_key = Fanforce::API.new.get("/api_auths/is_valid_key/#{params[:api_key]}", organization_id: params[:organization_id], app_id: params[:app_id])[:result] raise 'A different API key already exists for this app. Please uninstall first.' if !is_valid_key end $Redis.set("installed:app-#{ff.params[:app_id]}:#{params[:organization_id]}", params[:api_key]) ff.auth(params[:api_key]) json status: 'finished' end |
#route_new_message_ui ⇒ Object
3 4 5 |
# File 'lib/fanforce/app_factory/routes_broadcaster.rb', line 3 def page :new_message, :layout => :new_message, com_dir: "#{params[:com_behavior_shortid]}" end |
#route_ping_pong ⇒ Object
42 43 44 |
# File 'lib/fanforce/app_factory/routes_core.rb', line 42 def route_ping_pong json success: true end |
#route_source_details_ui ⇒ Object
7 8 9 |
# File 'lib/fanforce/app_factory/routes_connector.rb', line 7 def route_source_details_ui page :source_details, :layout => :source_details, com_dir: "#{params[:com_behavior_shortid]}" end |
#route_uninstall_callback ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/fanforce/app_factory/routes_core.rb', line 29 def route_uninstall_callback raise 'This is not a valid app uninstall request.' if !ff.valid_uninstall_request?(params) api_key = $Redis.get("installed:app-#{ff.params[:app_id]}:#{params[:organization_id]}") if api_key.present? and api_key != params[:api_key] is_valid_key = Fanforce::API.new.get("/api_auths/is_valid_key/#{params[:api_key]}", organization_id: params[:organization_id], app_id: params[:app_id])[:result] raise 'API keys must match before an app can be uninstalled.' if !is_valid_key end $Redis.del("installed:app-#{ff.params[:app_id]}:#{params[:organization_id]}") json status: 'finished' end |
#route_widget_templates ⇒ Object
3 4 5 6 |
# File 'lib/fanforce/app_factory/routes_js_widget.rb', line 3 def content_type 'application/javascript' page :widget_templates end |