platform 3.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +21 -0
- data/.rspec +2 -0
- data/Gemfile +14 -0
- data/Gemfile.lock +191 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +5 -0
- data/Rakefile +37 -0
- data/app/assets/images/platform/.gitkeep +0 -0
- data/app/assets/images/platform/accept.png +0 -0
- data/app/assets/images/platform/action_tab_bkgd.gif +0 -0
- data/app/assets/images/platform/action_tab_white_bkgd.gif +0 -0
- data/app/assets/images/platform/add.png +0 -0
- data/app/assets/images/platform/apps/app_icon.gif +0 -0
- data/app/assets/images/platform/apps/app_logo.gif +0 -0
- data/app/assets/images/platform/arrow_down.gif +0 -0
- data/app/assets/images/platform/arrow_down.png +0 -0
- data/app/assets/images/platform/arrow_down_grey.png +0 -0
- data/app/assets/images/platform/arrow_right.gif +0 -0
- data/app/assets/images/platform/arrow_up.png +0 -0
- data/app/assets/images/platform/arrow_up_grey.png +0 -0
- data/app/assets/images/platform/bullet_go.png +0 -0
- data/app/assets/images/platform/buttons.png +0 -0
- data/app/assets/images/platform/cancel.png +0 -0
- data/app/assets/images/platform/clipboard_icon.gif +0 -0
- data/app/assets/images/platform/close.gif +0 -0
- data/app/assets/images/platform/cross.png +0 -0
- data/app/assets/images/platform/default_app_icon.gif +0 -0
- data/app/assets/images/platform/default_app_logo.gif +0 -0
- data/app/assets/images/platform/delete.png +0 -0
- data/app/assets/images/platform/disk.png +0 -0
- data/app/assets/images/platform/exclamation.png +0 -0
- data/app/assets/images/platform/eye.png +0 -0
- data/app/assets/images/platform/eye_not.png +0 -0
- data/app/assets/images/platform/field_sprite.gif +0 -0
- data/app/assets/images/platform/find.png +0 -0
- data/app/assets/images/platform/globe.gif +0 -0
- data/app/assets/images/platform/help.png +0 -0
- data/app/assets/images/platform/help/app_reg.png +0 -0
- data/app/assets/images/platform/help/app_reg_ext.png +0 -0
- data/app/assets/images/platform/help/app_reg_web.png +0 -0
- data/app/assets/images/platform/help/auth_desktop.png +0 -0
- data/app/assets/images/platform/help/auth_iframe.png +0 -0
- data/app/assets/images/platform/help/auth_iphone.png +0 -0
- data/app/assets/images/platform/help/auth_web.png +0 -0
- data/app/assets/images/platform/help/authorize.png +0 -0
- data/app/assets/images/platform/help/ext.png +0 -0
- data/app/assets/images/platform/help/login.png +0 -0
- data/app/assets/images/platform/help/login_desktop.png +0 -0
- data/app/assets/images/platform/help/login_iphone.png +0 -0
- data/app/assets/images/platform/help/login_web.png +0 -0
- data/app/assets/images/platform/help2.png +0 -0
- data/app/assets/images/platform/information.png +0 -0
- data/app/assets/images/platform/keyboard.png +0 -0
- data/app/assets/images/platform/language_selector_arrow.gif +0 -0
- data/app/assets/images/platform/left_quote.png +0 -0
- data/app/assets/images/platform/lightning.png +0 -0
- data/app/assets/images/platform/loading.gif +0 -0
- data/app/assets/images/platform/loading2.gif +0 -0
- data/app/assets/images/platform/loading3.gif +0 -0
- data/app/assets/images/platform/loading_animation.gif +0 -0
- data/app/assets/images/platform/loading_large.gif +0 -0
- data/app/assets/images/platform/lock.png +0 -0
- data/app/assets/images/platform/lock_add.png +0 -0
- data/app/assets/images/platform/lock_delete.png +0 -0
- data/app/assets/images/platform/lock_open.png +0 -0
- data/app/assets/images/platform/medals/bronze.png +0 -0
- data/app/assets/images/platform/medals/gold.png +0 -0
- data/app/assets/images/platform/medals/runner.png +0 -0
- data/app/assets/images/platform/medals/silver.png +0 -0
- data/app/assets/images/platform/minus_node.png +0 -0
- data/app/assets/images/platform/oauth/perm_tile.gif +0 -0
- data/app/assets/images/platform/oauth/right_grey.png +0 -0
- data/app/assets/images/platform/pencil.png +0 -0
- data/app/assets/images/platform/photo_silhouette.gif +0 -0
- data/app/assets/images/platform/pixel.gif +0 -0
- data/app/assets/images/platform/platform.png +0 -0
- data/app/assets/images/platform/platform2.png +0 -0
- data/app/assets/images/platform/platform3.png +0 -0
- data/app/assets/images/platform/platform4.png +0 -0
- data/app/assets/images/platform/platform5.png +0 -0
- data/app/assets/images/platform/plus.png +0 -0
- data/app/assets/images/platform/plus_node.png +0 -0
- data/app/assets/images/platform/random.png +0 -0
- data/app/assets/images/platform/random2.png +0 -0
- data/app/assets/images/platform/rating_star0.png +0 -0
- data/app/assets/images/platform/rating_star05.png +0 -0
- data/app/assets/images/platform/rating_star1.png +0 -0
- data/app/assets/images/platform/rating_stars.gif +0 -0
- data/app/assets/images/platform/rating_stars.psd +0 -0
- data/app/assets/images/platform/reply.png +0 -0
- data/app/assets/images/platform/right_quote.png +0 -0
- data/app/assets/images/platform/rotating_world.gif +0 -0
- data/app/assets/images/platform/script.png +0 -0
- data/app/assets/images/platform/script_edit.png +0 -0
- data/app/assets/images/platform/script_gear.png +0 -0
- data/app/assets/images/platform/site_sprite.gif +0 -0
- data/app/assets/images/platform/spinner.gif +0 -0
- data/app/assets/images/platform/star.png +0 -0
- data/app/assets/images/platform/table_edit.png +0 -0
- data/app/assets/images/platform/table_gear.png +0 -0
- data/app/assets/images/platform/table_multiple.png +0 -0
- data/app/assets/images/platform/thumb_down.png +0 -0
- data/app/assets/images/platform/thumb_up.png +0 -0
- data/app/assets/images/platform/top_left_stem.png +0 -0
- data/app/assets/images/platform/top_right_stem.png +0 -0
- data/app/assets/images/platform/translate_icn.gif +0 -0
- data/app/assets/images/platform/treeview/diffDoc.gif +0 -0
- data/app/assets/images/platform/treeview/diffFolder.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2blank.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2doc.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2folderclosed.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2folderopen.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2lastnode.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2link.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2mlastnode.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2mnode.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2node.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2plastnode.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2pnode.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2vertline.gif +0 -0
- data/app/assets/images/platform/wizard.png +0 -0
- data/app/assets/images/platform/world_link.png +0 -0
- data/app/assets/javascripts/platform/api_explorer.js +628 -0
- data/app/assets/javascripts/platform/application.js +9 -0
- data/app/assets/javascripts/platform/ftiens4.js +1197 -0
- data/app/assets/javascripts/platform/jsdk.js +539 -0
- data/app/assets/javascripts/platform/platform.js +447 -0
- data/app/assets/javascripts/platform/shortcut.js +223 -0
- data/app/assets/javascripts/platform/ua.js +147 -0
- data/app/assets/stylesheets/platform/api_explorer.css.scss +140 -0
- data/app/assets/stylesheets/platform/application.css.scss +6 -0
- data/app/assets/stylesheets/platform/components.css.scss +208 -0
- data/app/assets/stylesheets/platform/layout.css.scss +119 -0
- data/app/assets/stylesheets/platform/oauth.css +51 -0
- data/app/assets/stylesheets/platform/platform.css.scss +311 -0
- data/app/controllers/platform/admin/apps_controller.rb +99 -0
- data/app/controllers/platform/admin/base_controller.rb +60 -0
- data/app/controllers/platform/admin/categories_controller.rb +132 -0
- data/app/controllers/platform/admin/clientsdk_controller.rb +30 -0
- data/app/controllers/platform/admin/developers_controller.rb +30 -0
- data/app/controllers/platform/admin/exceptions_controller.rb +30 -0
- data/app/controllers/platform/admin/forum_controller.rb +34 -0
- data/app/controllers/platform/admin/metrics_controller.rb +42 -0
- data/app/controllers/platform/api/apps_controller.rb +40 -0
- data/app/controllers/platform/api/base_controller.rb +541 -0
- data/app/controllers/platform/apps_controller.rb +142 -0
- data/app/controllers/platform/base_controller.rb +127 -0
- data/app/controllers/platform/developer/api_explorer_controller.rb +56 -0
- data/app/controllers/platform/developer/apps_controller.rb +161 -0
- data/app/controllers/platform/developer/base_controller.rb +51 -0
- data/app/controllers/platform/developer/blog_controller.rb +29 -0
- data/app/controllers/platform/developer/dashboard_controller.rb +63 -0
- data/app/controllers/platform/developer/forum_controller.rb +85 -0
- data/app/controllers/platform/developer/help_controller.rb +113 -0
- data/app/controllers/platform/developer/info_controller.rb +41 -0
- data/app/controllers/platform/developer/registration_controller.rb +39 -0
- data/app/controllers/platform/developer/resources_controller.rb +30 -0
- data/app/controllers/platform/forum_controller.rb +74 -0
- data/app/controllers/platform/oauth_controller.rb +421 -0
- data/app/controllers/platform/ratings_controller.rb +61 -0
- data/app/helpers/platform/admin/categories_helper.rb +54 -0
- data/app/helpers/platform/apps_helper.rb +26 -0
- data/app/helpers/platform/developer/dashboard_helper.rb +42 -0
- data/app/helpers/platform/developer/help_helper.rb +45 -0
- data/app/helpers/platform_helper.rb +26 -0
- data/app/models/platform/application.rb +394 -0
- data/app/models/platform/application_category.rb +34 -0
- data/app/models/platform/application_developer.rb +30 -0
- data/app/models/platform/application_filter.rb +30 -0
- data/app/models/platform/application_log.rb +32 -0
- data/app/models/platform/application_log_filter.rb +34 -0
- data/app/models/platform/application_metric.rb +58 -0
- data/app/models/platform/application_metric_filter.rb +34 -0
- data/app/models/platform/application_permission.rb +30 -0
- data/app/models/platform/application_permission_filter.rb +30 -0
- data/app/models/platform/application_usage_metric.rb +58 -0
- data/app/models/platform/application_usage_metric_filter.rb +34 -0
- data/app/models/platform/application_user.rb +45 -0
- data/app/models/platform/application_user_filter.rb +34 -0
- data/app/models/platform/base_filter.rb +46 -0
- data/app/models/platform/category.rb +64 -0
- data/app/models/platform/daily_application_metric.rb +31 -0
- data/app/models/platform/developer.rb +45 -0
- data/app/models/platform/developer_filter.rb +26 -0
- data/app/models/platform/forum_message.rb +35 -0
- data/app/models/platform/forum_message_filter.rb +26 -0
- data/app/models/platform/forum_topic.rb +38 -0
- data/app/models/platform/forum_topic_filter.rb +26 -0
- data/app/models/platform/logged_exception.rb +290 -0
- data/app/models/platform/logged_exception_filter.rb +58 -0
- data/app/models/platform/media/image.rb +26 -0
- data/app/models/platform/media/media.rb +58 -0
- data/app/models/platform/monthly_application_metric.rb +31 -0
- data/app/models/platform/oauth/access_token.rb +57 -0
- data/app/models/platform/oauth/client_token.rb +38 -0
- data/app/models/platform/oauth/oauth_model_methods.rb +41 -0
- data/app/models/platform/oauth/oauth_token.rb +57 -0
- data/app/models/platform/oauth/oauth_token_filter.rb +34 -0
- data/app/models/platform/oauth/refresh_token.rb +47 -0
- data/app/models/platform/oauth/request_token.rb +50 -0
- data/app/models/platform/permission.rb +27 -0
- data/app/models/platform/rating.rb +43 -0
- data/app/models/platform/rating_filter.rb +30 -0
- data/app/models/platform/rollup_log.rb +27 -0
- data/app/models/platform/rollup_log_filter.rb +30 -0
- data/app/models/platform/total_application_metric.rb +40 -0
- data/app/models/platform/weekly_application_metric.rb +31 -0
- data/app/views/platform/admin/apps/_categories.html.erb +17 -0
- data/app/views/platform/admin/apps/_categories_scripts.html.erb +17 -0
- data/app/views/platform/admin/apps/_tabs.html.erb +25 -0
- data/app/views/platform/admin/apps/index.html.erb +32 -0
- data/app/views/platform/admin/apps/permissions.html.erb +7 -0
- data/app/views/platform/admin/apps/ratings.html.erb +7 -0
- data/app/views/platform/admin/apps/tokens.html.erb +18 -0
- data/app/views/platform/admin/apps/users.html.erb +7 -0
- data/app/views/platform/admin/apps/view.html.erb +170 -0
- data/app/views/platform/admin/categories/_tabs.html.erb +22 -0
- data/app/views/platform/admin/categories/category_assigner.html.erb +9 -0
- data/app/views/platform/admin/categories/category_assigner_tree.html.erb +81 -0
- data/app/views/platform/admin/categories/index.html.erb +106 -0
- data/app/views/platform/admin/categories/items.html.erb +153 -0
- data/app/views/platform/admin/categories/lb_update_application_category.html.erb +54 -0
- data/app/views/platform/admin/categories/lb_update_category.html.erb +64 -0
- data/app/views/platform/admin/categories/tree.html.erb +64 -0
- data/app/views/platform/admin/clientsdk/index.html.erb +89 -0
- data/app/views/platform/admin/common/_footer.html.erb +1 -0
- data/app/views/platform/admin/common/_header.html.erb +32 -0
- data/app/views/platform/admin/common/_lightbox_buttons.html.erb +5 -0
- data/app/views/platform/admin/common/_paginator.html.erb +20 -0
- data/app/views/platform/admin/developers/_tabs.html.erb +22 -0
- data/app/views/platform/admin/developers/index.html.erb +7 -0
- data/app/views/platform/admin/exceptions/_tabs.html.erb +22 -0
- data/app/views/platform/admin/exceptions/index.html.erb +7 -0
- data/app/views/platform/admin/forum/_tabs.html.erb +22 -0
- data/app/views/platform/admin/forum/index.html.erb +7 -0
- data/app/views/platform/admin/forum/messages.html.erb +7 -0
- data/app/views/platform/admin/metrics/_tabs.html.erb +25 -0
- data/app/views/platform/admin/metrics/application_log.html.erb +7 -0
- data/app/views/platform/admin/metrics/index.html.erb +9 -0
- data/app/views/platform/admin/metrics/rollup_log.html.erb +7 -0
- data/app/views/platform/admin/metrics/usage.html.erb +7 -0
- data/app/views/platform/apps/_actions_module.html.erb +3 -0
- data/app/views/platform/apps/_app_footer.html.erb +8 -0
- data/app/views/platform/apps/_app_header.html.erb +25 -0
- data/app/views/platform/apps/_apps_module.html.erb +42 -0
- data/app/views/platform/apps/_authorize_form.html.erb +11 -0
- data/app/views/platform/apps/_categories_module.html.erb +11 -0
- data/app/views/platform/apps/_featured_apps_module.html.erb +40 -0
- data/app/views/platform/apps/_left.html.erb +20 -0
- data/app/views/platform/apps/_monthly_users_module.html.erb +8 -0
- data/app/views/platform/apps/_paginator.html.erb +13 -0
- data/app/views/platform/apps/_rank_module.html.erb +18 -0
- data/app/views/platform/apps/_search_apps_module.html.erb +35 -0
- data/app/views/platform/apps/canvas_app.html.erb +15 -0
- data/app/views/platform/apps/index.html.erb +86 -0
- data/app/views/platform/apps/view.html.erb +71 -0
- data/app/views/platform/apps/xd.html.erb +11 -0
- data/app/views/platform/common/_footer.html.erb +1 -0
- data/app/views/platform/common/_header.html.erb +4 -0
- data/app/views/platform/common/_paginator.html.erb +32 -0
- data/app/views/platform/common/_scripts.html.erb +7 -0
- data/app/views/platform/common/_user_login.html.erb +11 -0
- data/app/views/platform/developer/api_explorer/history.html.erb +31 -0
- data/app/views/platform/developer/api_explorer/index.html.erb +134 -0
- data/app/views/platform/developer/api_explorer/oauth_lander.html.erb +4 -0
- data/app/views/platform/developer/api_explorer/options.html.erb +44 -0
- data/app/views/platform/developer/apps/_form.html.erb +340 -0
- data/app/views/platform/developer/apps/create_version.html.erb +19 -0
- data/app/views/platform/developer/apps/edit.html.erb +21 -0
- data/app/views/platform/developer/apps/index.html.erb +375 -0
- data/app/views/platform/developer/apps/new.html.erb +20 -0
- data/app/views/platform/developer/blog/index.html.erb +7 -0
- data/app/views/platform/developer/common/_footer.html.erb +1 -0
- data/app/views/platform/developer/common/_header.html.erb +34 -0
- data/app/views/platform/developer/dashboard/_apps_info.html.erb +84 -0
- data/app/views/platform/developer/dashboard/_discussions.html.erb +68 -0
- data/app/views/platform/developer/dashboard/_header.html.erb +12 -0
- data/app/views/platform/developer/dashboard/_reviews.html.erb +53 -0
- data/app/views/platform/developer/dashboard/_statistics.html.erb +105 -0
- data/app/views/platform/developer/dashboard/index.html.erb +85 -0
- data/app/views/platform/developer/dashboard/settings.html.erb +23 -0
- data/app/views/platform/developer/forum/_message.html.erb +17 -0
- data/app/views/platform/developer/forum/_messages.html.erb +14 -0
- data/app/views/platform/developer/forum/_new_message.html.erb +28 -0
- data/app/views/platform/developer/forum/_new_topic.html.erb +39 -0
- data/app/views/platform/developer/forum/index.html.erb +89 -0
- data/app/views/platform/developer/forum/topic.html.erb +28 -0
- data/app/views/platform/developer/help/_footer.html.erb +4 -0
- data/app/views/platform/developer/help/_header.html.erb +95 -0
- data/app/views/platform/developer/help/_navigation.html.erb +99 -0
- data/app/views/platform/developer/help/api.html.erb +120 -0
- data/app/views/platform/developer/help/credits.html.erb +77 -0
- data/app/views/platform/developer/help/index.html.erb +19 -0
- data/app/views/platform/developer/help/license.html.erb +586 -0
- data/app/views/platform/developer/help/oauth_app_login.html.erb +177 -0
- data/app/views/platform/developer/help/oauth_client_side.html.erb +264 -0
- data/app/views/platform/developer/help/oauth_desktop.html.erb +191 -0
- data/app/views/platform/developer/help/oauth_extensions.html.erb +342 -0
- data/app/views/platform/developer/help/oauth_intro.html.erb +371 -0
- data/app/views/platform/developer/help/oauth_mobile.html.erb +292 -0
- data/app/views/platform/developer/help/oauth_server_side.html.erb +603 -0
- data/app/views/platform/developer/help/oauth_trusted_client.html.erb +202 -0
- data/app/views/platform/developer/help/reference.html.erb +42 -0
- data/app/views/platform/developer/help/sdk_ios.html.erb +31 -0
- data/app/views/platform/developer/help/sdk_js.html.erb +202 -0
- data/app/views/platform/developer/info/_basic_info.html.erb +74 -0
- data/app/views/platform/developer/info/_header.html.erb +12 -0
- data/app/views/platform/developer/info/index.html.erb +23 -0
- data/app/views/platform/developer/registration/index.html.erb +134 -0
- data/app/views/platform/developer/resources/index.html.erb +23 -0
- data/app/views/platform/forum/_message.html.erb +17 -0
- data/app/views/platform/forum/_messages.html.erb +14 -0
- data/app/views/platform/forum/_new_message.html.erb +26 -0
- data/app/views/platform/forum/_new_topic.html.erb +38 -0
- data/app/views/platform/forum/_topic.html.erb +18 -0
- data/app/views/platform/forum/_topics.html.erb +74 -0
- data/app/views/platform/login/index.html.erb +31 -0
- data/app/views/platform/login/register.html.erb +55 -0
- data/app/views/platform/oauth/_authorization_box.html.erb +75 -0
- data/app/views/platform/oauth/_authorization_popup.html.erb +38 -0
- data/app/views/platform/oauth/_authorize_form.html.erb +11 -0
- data/app/views/platform/oauth/auth_failed.html.erb +0 -0
- data/app/views/platform/oauth/auth_success.html.erb +0 -0
- data/app/views/platform/oauth/authorize_desktop.html.erb +76 -0
- data/app/views/platform/oauth/authorize_failure_iframe.html.erb +1 -0
- data/app/views/platform/oauth/authorize_failure_mobile.html.erb +24 -0
- data/app/views/platform/oauth/authorize_failure_popup.html.erb +24 -0
- data/app/views/platform/oauth/authorize_failure_web.html.erb +1 -0
- data/app/views/platform/oauth/authorize_iframe.html.erb +16 -0
- data/app/views/platform/oauth/authorize_mobile.html.erb +1 -0
- data/app/views/platform/oauth/authorize_popup.html.erb +1 -0
- data/app/views/platform/oauth/authorize_success_iframe.html.erb +1 -0
- data/app/views/platform/oauth/authorize_success_mobile.html.erb +24 -0
- data/app/views/platform/oauth/authorize_success_popup.html.erb +24 -0
- data/app/views/platform/oauth/authorize_success_web.html.erb +1 -0
- data/app/views/platform/oauth/authorize_web.html.erb +3 -0
- data/app/views/platform/oauth/xd.html.erb +13 -0
- data/app/views/platform/ratings/_list.html.erb +30 -0
- data/app/views/platform/ratings/_new.html.erb +70 -0
- data/app/views/platform/ratings/_rating.html.erb +17 -0
- data/config/platform/config.yml +133 -0
- data/config/platform/data/default_applications.yml +39 -0
- data/config/platform/data/default_categories.yml +56 -0
- data/config/platform/data/default_permissions.yml +0 -0
- data/config/platform/site/features.yml +66 -0
- data/config/routes.rb +59 -0
- data/db/migrate/20110602232141_create_platform_tables.rb +262 -0
- data/docs/Classes.graffle +7315 -0
- data/docs/Classes.pdf +0 -0
- data/lib/generators/platform/platform_generator.rb +56 -0
- data/lib/generators/platform/templates/db/create_platform_tables.rb +262 -0
- data/lib/generators/platform/templates/layouts/platform.html.erb +49 -0
- data/lib/generators/platform/templates/layouts/platform_admin.html.erb +60 -0
- data/lib/platform.rb +6 -0
- data/lib/platform/api/already_jsoned_string.rb +9 -0
- data/lib/platform/api/proxy.rb +45 -0
- data/lib/platform/api/proxy/base.rb +62 -0
- data/lib/platform/cache.rb +78 -0
- data/lib/platform/config.rb +666 -0
- data/lib/platform/engine.rb +5 -0
- data/lib/platform/exception.rb +27 -0
- data/lib/platform/extensions/action_controller_extension.rb +65 -0
- data/lib/platform/extensions/action_view_extension.rb +168 -0
- data/lib/platform/extensions/object_extension.rb +51 -0
- data/lib/platform/helper.rb +33 -0
- data/lib/platform/logger.rb +62 -0
- data/lib/platform/railtie.rb +52 -0
- data/lib/platform/random_password_generator.rb +76 -0
- data/lib/platform/simple_string_permissions.rb +40 -0
- data/lib/platform/version.rb +3 -0
- data/lib/tasks/platform.rake +119 -0
- data/platform.gemspec +45 -0
- data/script/rails +6 -0
- data/spec/config/config_spec.rb +10 -0
- data/spec/dummy_app.rb +52 -0
- data/spec/models/application_spec.rb +53 -0
- data/spec/models/developer_spec.rb +23 -0
- data/spec/spec_helper.rb +29 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +7 -0
- data/test/dummy/app/assets/stylesheets/admin.css +200 -0
- data/test/dummy/app/assets/stylesheets/application.css +47 -0
- data/test/dummy/app/assets/stylesheets/components.css.scss +211 -0
- data/test/dummy/app/assets/stylesheets/layout.css.scss +143 -0
- data/test/dummy/app/controllers/admin/admins_controller.rb +7 -0
- data/test/dummy/app/controllers/admin/base_controller.rb +12 -0
- data/test/dummy/app/controllers/admin/bookmarks_controller.rb +7 -0
- data/test/dummy/app/controllers/admin/users_controller.rb +19 -0
- data/test/dummy/app/controllers/api/base_controller.rb +5 -0
- data/test/dummy/app/controllers/api/bookmarks_controller.rb +35 -0
- data/test/dummy/app/controllers/api/users_controller.rb +19 -0
- data/test/dummy/app/controllers/application_controller.rb +31 -0
- data/test/dummy/app/controllers/home_controller.rb +7 -0
- data/test/dummy/app/controllers/login_controller.rb +65 -0
- data/test/dummy/app/helpers/application_helper.rb +9 -0
- data/test/dummy/app/helpers/home_helper.rb +2 -0
- data/test/dummy/app/mailers/.gitkeep +0 -0
- data/test/dummy/app/models/.gitkeep +0 -0
- data/test/dummy/app/models/admin.rb +4 -0
- data/test/dummy/app/models/admin_filter.rb +7 -0
- data/test/dummy/app/models/bookmark.rb +7 -0
- data/test/dummy/app/models/user.rb +34 -0
- data/test/dummy/app/views/admin/admins/index.html.erb +7 -0
- data/test/dummy/app/views/admin/bookmarks/index.html.erb +5 -0
- data/test/dummy/app/views/admin/users/index.html.erb +10 -0
- data/test/dummy/app/views/demo/index.rhtml +108 -0
- data/test/dummy/app/views/demo/tokens.rhtml +35 -0
- data/test/dummy/app/views/home/index.html.erb +43 -0
- data/test/dummy/app/views/layouts/_footer.html.erb +16 -0
- data/test/dummy/app/views/layouts/_header.html.erb +22 -0
- data/test/dummy/app/views/layouts/admin.html.erb +97 -0
- data/test/dummy/app/views/layouts/application.html.erb +25 -0
- data/test/dummy/app/views/layouts/minimal.html.erb +37 -0
- data/test/dummy/app/views/layouts/popup.html.erb +43 -0
- data/test/dummy/app/views/login/index.html.erb +34 -0
- data/test/dummy/app/views/login/register.html.erb +51 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +51 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +30 -0
- data/test/dummy/config/environments/production.rb +60 -0
- data/test/dummy/config/environments/test.rb +42 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +10 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/platform/api/0/bookmark.yml +18 -0
- data/test/dummy/config/platform/api/0/user.yml +17 -0
- data/test/dummy/config/platform/api/1/bookmark.yml +58 -0
- data/test/dummy/config/platform/api/1/user.yml +36 -0
- data/test/dummy/config/platform/config.yml +135 -0
- data/test/dummy/config/platform/data/default_applications.yml +39 -0
- data/test/dummy/config/platform/data/default_categories.yml +56 -0
- data/test/dummy/config/platform/data/default_permissions.yml +0 -0
- data/test/dummy/config/platform/site/features.yml +66 -0
- data/test/dummy/config/platform/site/sample_apps.yml +100 -0
- data/test/dummy/config/routes.rb +30 -0
- data/test/dummy/config/tr8n/config.yml +247 -0
- data/test/dummy/config/tr8n/data/ip_locations.csv +93460 -0
- data/test/dummy/config/tr8n/rules/default_date_rules.yml +20 -0
- data/test/dummy/config/tr8n/rules/default_gender_list_rules.yml +82 -0
- data/test/dummy/config/tr8n/rules/default_gender_rules.yml +20 -0
- data/test/dummy/config/tr8n/rules/default_language_cases.yml +272 -0
- data/test/dummy/config/tr8n/rules/default_list_rules.yml +19 -0
- data/test/dummy/config/tr8n/rules/default_numeric_rules.yml +42 -0
- data/test/dummy/config/tr8n/rules/default_value_rules.yml +18 -0
- data/test/dummy/config/tr8n/site/default_glossary.yml +18 -0
- data/test/dummy/config/tr8n/site/default_languages.yml +1591 -0
- data/test/dummy/config/tr8n/site/features.yml +111 -0
- data/test/dummy/config/tr8n/site/shortcuts.yml +55 -0
- data/test/dummy/config/tr8n/site/sitemap.json +42 -0
- data/test/dummy/config/tr8n/tokens/data.yml +19 -0
- data/test/dummy/config/tr8n/tokens/decorations.yml +19 -0
- data/test/dummy/config/will_filter/config.yml +99 -0
- data/test/dummy/db/migrate/20101207014543_create_users.rb +23 -0
- data/test/dummy/db/migrate/20110113223509_create_admins.rb +15 -0
- data/test/dummy/db/migrate/20110930041143_create_will_filter_filters.rb +15 -0
- data/test/dummy/db/migrate/20110930041150_create_tr8n_tables.rb +350 -0
- data/test/dummy/db/migrate/20111004075531_create_platform_tables.rb +262 -0
- data/test/dummy/db/migrate/20111012055603_create_bookmarks.rb +10 -0
- data/test/dummy/db/schema.rb +683 -0
- data/test/dummy/lib/assets/.gitkeep +0 -0
- data/test/dummy/lib/platform/api/bookmark_proxy_0.rb +12 -0
- data/test/dummy/lib/platform/api/bookmark_proxy_1.rb +12 -0
- data/test/dummy/lib/platform/api/user_proxy_0.rb +12 -0
- data/test/dummy/lib/platform/api/user_proxy_1.rb +12 -0
- data/test/dummy/log/.gitkeep +0 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +26 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/dummy/test/fixtures/documents.yml +11 -0
- data/test/dummy/test/unit/document_test.rb +7 -0
- metadata +886 -0
@@ -0,0 +1,202 @@
|
|
1
|
+
<%= render :partial => "header" %>
|
2
|
+
<div class="documentation_section_title">
|
3
|
+
<%= tr("Trusted Application Authorization Flow") %>
|
4
|
+
</div>
|
5
|
+
<div class="documentation_section">
|
6
|
+
<p>
|
7
|
+
<%=tr("The trusted application flow can only be used if your application has a trust relationship with the user and no other flow can work for your application.") %>
|
8
|
+
<%=tr("For example, you can use trusted app flow if you have a highly privileged desktop application and user wants to give your application explicit access to all user data by providing you with user login and password.") %>
|
9
|
+
<%=tr("This flow is not enabled by default.") %>
|
10
|
+
<%=tr("If you want to use this flow, please email us and after we review your request we will make a decision on granting you the flow access.") %>
|
11
|
+
</p>
|
12
|
+
<h2><%=tr("Application Authorization") %></h2>
|
13
|
+
<p>
|
14
|
+
<%=tr("In order to authenticate your application, you must pass the following parameter to the request_token endpoint:") %>
|
15
|
+
</p>
|
16
|
+
<h3><%=tr("Oauth Endpoint") %></h3>
|
17
|
+
<div class="code_snippet">
|
18
|
+
https://<%=Platform::Config.site_base_url %>/platform/oauth/request_token
|
19
|
+
</div>
|
20
|
+
<h3><%=tr("Parameters") %></h3>
|
21
|
+
<p>
|
22
|
+
<table class="documentation_table">
|
23
|
+
<tr>
|
24
|
+
<th style="width:150px;">
|
25
|
+
<%=tr("Name") %>
|
26
|
+
</th>
|
27
|
+
<th>
|
28
|
+
<%=tr("Description") %>
|
29
|
+
</th>
|
30
|
+
<th style="width:150px;">
|
31
|
+
<%=tr("Required") %>
|
32
|
+
</th>
|
33
|
+
</tr>
|
34
|
+
<tr>
|
35
|
+
<td>
|
36
|
+
client_id
|
37
|
+
</td>
|
38
|
+
<td>
|
39
|
+
<%=tr("Application key generated during the app registration.") %>
|
40
|
+
</td>
|
41
|
+
<td>
|
42
|
+
true
|
43
|
+
</td>
|
44
|
+
</tr>
|
45
|
+
<tr>
|
46
|
+
<td>
|
47
|
+
username
|
48
|
+
</td>
|
49
|
+
<td>
|
50
|
+
<%=tr("User's username.") %>
|
51
|
+
</td>
|
52
|
+
<td>
|
53
|
+
true
|
54
|
+
</td>
|
55
|
+
</tr>
|
56
|
+
<tr>
|
57
|
+
<td>
|
58
|
+
password
|
59
|
+
</td>
|
60
|
+
<td>
|
61
|
+
<%=tr("User's password.") %>
|
62
|
+
</td>
|
63
|
+
<td>
|
64
|
+
true
|
65
|
+
</td>
|
66
|
+
</tr>
|
67
|
+
<tr>
|
68
|
+
<td>
|
69
|
+
grant_type
|
70
|
+
</td>
|
71
|
+
<td>
|
72
|
+
<%=tr("For this flow the grant type must be set to \"password\".") %>
|
73
|
+
</td>
|
74
|
+
<td>
|
75
|
+
true
|
76
|
+
</td>
|
77
|
+
</tr>
|
78
|
+
<tr>
|
79
|
+
<td>
|
80
|
+
scope
|
81
|
+
</td>
|
82
|
+
<td>
|
83
|
+
<%=tr("A comma delimited list of permissions that the application needs.") %>
|
84
|
+
<%=tr("By default the scope is set to a full data access.") %>
|
85
|
+
<%=tr("This is subject to change in the upcoming releases.") %>
|
86
|
+
</td>
|
87
|
+
<td>
|
88
|
+
false
|
89
|
+
</td>
|
90
|
+
</tr>
|
91
|
+
</table>
|
92
|
+
</p>
|
93
|
+
<h3><%=tr("Example")%></h3>
|
94
|
+
<div class="code_snippet">
|
95
|
+
https://<%=Platform::Config.site_base_url %>/platform/oauth/request_token?client_id=YOUR_APP_ID&username=USERNAME&password=PASSWORD&grant_type=password
|
96
|
+
</div>
|
97
|
+
<p>
|
98
|
+
<%=tr("If your app is successfully authenticated and the user credentials are valid, the authorization server will return the access token in a JSON format:")%>
|
99
|
+
</p>
|
100
|
+
<h3><%=tr("Returned Fields") %></h3>
|
101
|
+
<p>
|
102
|
+
<table class="documentation_table">
|
103
|
+
<tr>
|
104
|
+
<th style="width:150px;">
|
105
|
+
<%=tr("Name") %>
|
106
|
+
</th>
|
107
|
+
<th style="width:150px;">
|
108
|
+
<%=tr("Type") %>
|
109
|
+
</th>
|
110
|
+
<th>
|
111
|
+
<%=tr("Description") %>
|
112
|
+
</th>
|
113
|
+
</tr>
|
114
|
+
<tr>
|
115
|
+
<td style="widtd:150px;">
|
116
|
+
access_token
|
117
|
+
</td>
|
118
|
+
<td style="widtd:150px;">
|
119
|
+
String
|
120
|
+
</td>
|
121
|
+
<td>
|
122
|
+
<%=tr("Access token to be used with every API request")%>
|
123
|
+
</td>
|
124
|
+
</tr>
|
125
|
+
<tr>
|
126
|
+
<td style="widtd:150px;">
|
127
|
+
expires_in
|
128
|
+
</td>
|
129
|
+
<td style="widtd:150px;">
|
130
|
+
Number
|
131
|
+
</td>
|
132
|
+
<td>
|
133
|
+
<%=tr("Seconds until the token will expire")%>
|
134
|
+
</td>
|
135
|
+
</tr>
|
136
|
+
<tr>
|
137
|
+
<td style="widtd:150px;">
|
138
|
+
refresh_token
|
139
|
+
</td>
|
140
|
+
<td style="widtd:150px;">
|
141
|
+
String
|
142
|
+
</td>
|
143
|
+
<td>
|
144
|
+
<%=tr("Token that can be used to get a new access token")%>
|
145
|
+
</td>
|
146
|
+
</tr>
|
147
|
+
</table>
|
148
|
+
</p>
|
149
|
+
<h3><%=tr("Example") %></h3>
|
150
|
+
<div class="code_snippet">
|
151
|
+
{"expires_in":86400,"refresh_token":"wEq6FMb3CcfPN6CckQv7","access_token":"sye4NMd130L4wqq13zjqqLHwuHd5jnnKwdVi9S8X"}
|
152
|
+
</div>
|
153
|
+
<p>
|
154
|
+
<%=tr("If your app failed to provide appropriate parameters, you will get one of the errors below in JSON format:")%>
|
155
|
+
</p>
|
156
|
+
<h3><%=tr("Returned Fields") %></h3>
|
157
|
+
<p>
|
158
|
+
<table class="documentation_table">
|
159
|
+
<tr>
|
160
|
+
<th style="width:150px;">
|
161
|
+
<%=tr("Name") %>
|
162
|
+
</th>
|
163
|
+
<th style="width:150px;">
|
164
|
+
<%=tr("Type") %>
|
165
|
+
</th>
|
166
|
+
<th>
|
167
|
+
<%=tr("Description") %>
|
168
|
+
</th>
|
169
|
+
</tr>
|
170
|
+
<tr>
|
171
|
+
<tr>
|
172
|
+
<td style="widtd:150px;">
|
173
|
+
error
|
174
|
+
</td>
|
175
|
+
<td style="widtd:150px;">
|
176
|
+
String
|
177
|
+
</td>
|
178
|
+
<td>
|
179
|
+
<%=tr("Error code")%>
|
180
|
+
</td>
|
181
|
+
</tr>
|
182
|
+
<tr>
|
183
|
+
<td style="widtd:150px;">
|
184
|
+
error_description
|
185
|
+
</td>
|
186
|
+
<td style="widtd:150px;">
|
187
|
+
String
|
188
|
+
</td>
|
189
|
+
<td>
|
190
|
+
<%=tr("Error description")%>
|
191
|
+
</td>
|
192
|
+
</tr>
|
193
|
+
</table>
|
194
|
+
</p>
|
195
|
+
<h3><%=tr("Example") %></h3>
|
196
|
+
<div class="code_snippet">
|
197
|
+
{"error_description":"invalid client application id","error":"unauthorized_client"}
|
198
|
+
<br>
|
199
|
+
<br>
|
200
|
+
</div>
|
201
|
+
</div>
|
202
|
+
<%= render :partial => "footer" %>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<%= render :partial => "header" %>
|
2
|
+
|
3
|
+
<div class="documentation_section_title">
|
4
|
+
<%= tr("Using the API Reference") %>
|
5
|
+
</div>
|
6
|
+
|
7
|
+
<div class="documentation_section">
|
8
|
+
<p>
|
9
|
+
|
10
|
+
</p>
|
11
|
+
<h2><%=tr("API Versions")%></h2>
|
12
|
+
<p>
|
13
|
+
<%=tr("API Version changes only when the API is no longer backwards compatible with the previous version.")%> <%=tr("Such API changes include changes to the results structure or modifications to the API path.")%>
|
14
|
+
<%=tr("Adding new API will not change the API version.")%>
|
15
|
+
</p>
|
16
|
+
|
17
|
+
<h2><%=tr("API Legend")%></h2>
|
18
|
+
<table class="documentation_table">
|
19
|
+
<tr>
|
20
|
+
<th style="width:20px;"><%=tr("Icon")%></th>
|
21
|
+
<th><%=tr("Description")%></th>
|
22
|
+
</tr>
|
23
|
+
<tr>
|
24
|
+
<td><%=image_tag("platform/exclamation.png")%></td>
|
25
|
+
<td><%=tr("Indicates that the API has been changed or a field has been deprecated")%></td>
|
26
|
+
</tr>
|
27
|
+
<tr>
|
28
|
+
<td><%=image_tag("platform/add.png")%></td>
|
29
|
+
<td><%=tr("Indicates that the API has been added or a field has been added")%></td>
|
30
|
+
</tr>
|
31
|
+
<tr>
|
32
|
+
<td><%=image_tag("platform/accept.png")%></td>
|
33
|
+
<td><%=tr("Indicates that the API has been changed or a field has been changed")%></td>
|
34
|
+
</tr>
|
35
|
+
</table>
|
36
|
+
<p>
|
37
|
+
|
38
|
+
</p>
|
39
|
+
|
40
|
+
</div>
|
41
|
+
|
42
|
+
<%= render :partial => "footer" %>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<%= render :partial => "header" %>
|
2
|
+
|
3
|
+
<div class="documentation_section_title">
|
4
|
+
<%= tr("#{Tr8n::Config.site_title}'s iOS SDK") %>
|
5
|
+
</div>
|
6
|
+
|
7
|
+
<div class="documentation_section">
|
8
|
+
<p>
|
9
|
+
The <%=Tr8n::Config.site_title %> iOS SDK is a full featured iOS library allowing developers to build iOS applications with <%=Tr8n::Config.site_title %>'s data.
|
10
|
+
It enables full access to all of <%=Tr8n::Config.site_title %>'s API methods on the client-side and provides robust functionality for working with Oauth 2.0 authentication.
|
11
|
+
</p>
|
12
|
+
|
13
|
+
|
14
|
+
<h2>Installing iOS SDK</h2>
|
15
|
+
<p>
|
16
|
+
You can install the SDK from the following URL:
|
17
|
+
</p>
|
18
|
+
|
19
|
+
<div class="code_snippet">
|
20
|
+
<%=link_to("https://github.com/geni/geni-ios-sdk", "https://github.com/geni/geni-ios-sdk")%>
|
21
|
+
</div>
|
22
|
+
|
23
|
+
<p>
|
24
|
+
Follow the documentation on the SDK site to get the SDK integrated into your application.
|
25
|
+
</p>
|
26
|
+
|
27
|
+
|
28
|
+
</div>
|
29
|
+
|
30
|
+
<%= render :partial => "footer" %>
|
31
|
+
|
@@ -0,0 +1,202 @@
|
|
1
|
+
<%= render :partial => "header" %>
|
2
|
+
|
3
|
+
<div class="documentation_section_title">
|
4
|
+
<%= tr("#{Tr8n::Config.site_title}'s JavaScript SDK") %>
|
5
|
+
</div>
|
6
|
+
|
7
|
+
<div class="documentation_section">
|
8
|
+
<p>
|
9
|
+
The <%=Tr8n::Config.site_title %> Javascript SDK is a full featured javascript library allowing developers to build dynamic web applications in the browser with <%=Tr8n::Config.site_title %>'s data.
|
10
|
+
It enables full access to all of <%=Tr8n::Config.site_title %>'s API methods on the client-side and provides robust functionality for working with Oauth 2.0 authentication.
|
11
|
+
</p>
|
12
|
+
|
13
|
+
<h2>JavaScript SDK Source Code</h2>
|
14
|
+
<div class="code_snippet">
|
15
|
+
<%=link_to("http://geni.com/jsdk.js", "http://geni.com/jsdk.js")%>
|
16
|
+
</div>
|
17
|
+
|
18
|
+
<h2>Getting Started</h2>
|
19
|
+
|
20
|
+
<p>
|
21
|
+
To get started, you'll need to add the library to your page, and initialize your app by calling <strong><%=Tr8n::Config.site_title %>.init()</strong>, passing in your application key.
|
22
|
+
The best place to put this is at the bottom of your page, before the closing <strong></body></strong> tag to prohibit blocking parallel downloads as described in
|
23
|
+
<a href="http://developer.yahoo.com/performance/rules.html#js_bottom">Yahoo's best practices</a>.
|
24
|
+
</p>
|
25
|
+
|
26
|
+
<pre class="code_snippet">
|
27
|
+
<script src="http://geni.com/jsdk.js"></script>
|
28
|
+
<script>
|
29
|
+
<%=Tr8n::Config.site_title %>.init({
|
30
|
+
app_id: 'YOUR_APP_KEY'
|
31
|
+
});
|
32
|
+
</script>
|
33
|
+
</pre>
|
34
|
+
|
35
|
+
<p>
|
36
|
+
In addition to app_id, <strong><%=Tr8n::Config.site_title %>.init()</strong> has a few optional parameters.
|
37
|
+
</p>
|
38
|
+
|
39
|
+
<pre class="code_snippet">
|
40
|
+
<script src="http://geni.com/jsdk.js"></script>
|
41
|
+
<script>
|
42
|
+
<%=Tr8n::Config.site_title %>.init({
|
43
|
+
app_id: 'YOUR_APP_KEY',
|
44
|
+
host: 'http://sandbox.geni.com', // change host if needed
|
45
|
+
cookie: true, // enables saving the access token to a cookie on the users machine
|
46
|
+
logging:true // enable log messages to help in debugging
|
47
|
+
});
|
48
|
+
</script>
|
49
|
+
</pre>
|
50
|
+
|
51
|
+
|
52
|
+
<h2>Authentication</h2>
|
53
|
+
|
54
|
+
<p>
|
55
|
+
Once your app has been initialized you can authenticate the user.
|
56
|
+
<%=Tr8n::Config.site_title %> uses Oauth 2.0 for authentication, which entails getting an access token for a user via a redirect to the <%=Tr8n::Config.site_title %>.com website.
|
57
|
+
Once a user approves your application you can then use the access token to make authorized requests to <%=Tr8n::Config.site_title %>'s API on behalf of that user.
|
58
|
+
</p>
|
59
|
+
|
60
|
+
|
61
|
+
<h2><%=Tr8n::Config.site_title %>.getStatus</h2>
|
62
|
+
<p>
|
63
|
+
To authenticate a user via the Javascript SDK you'll need to figure out whether the user is logged in and whether that user has already authorized your application. To do this we can use <strong><%=Tr8n::Config.site_title %>.getStatus()</strong>.
|
64
|
+
</p>
|
65
|
+
|
66
|
+
<pre class="code_snippet">
|
67
|
+
<%=Tr8n::Config.site_title %>.getStatus(function(response) {
|
68
|
+
if(response.status == 'authorized') {
|
69
|
+
// User is logged in and has authorized your application.
|
70
|
+
// You can now make authorized calls to the API.
|
71
|
+
} else {
|
72
|
+
// User is either logged out, has not authorized the app or both.
|
73
|
+
}
|
74
|
+
});
|
75
|
+
</pre>
|
76
|
+
|
77
|
+
<p>
|
78
|
+
The <%=Tr8n::Config.site_title %>.getStatus() method will make a request to <%=Tr8n::Config.site_title %> to obtain the current status of the user. The request will respond with one of three status types:
|
79
|
+
</p>
|
80
|
+
|
81
|
+
<ul class="data_list">
|
82
|
+
<li>"authorized" - the user is logged in to <%=Tr8n::Config.site_title %> and has authorized your application</li>
|
83
|
+
<li>"unauthorized" - the user is logged in to <%=Tr8n::Config.site_title %> but has not authorized your application</li>
|
84
|
+
<li>"unknown" - the user is logged out of <%=Tr8n::Config.site_title %></li>
|
85
|
+
</ul>
|
86
|
+
|
87
|
+
|
88
|
+
<h2><%=Tr8n::Config.site_title %>.connect</h2>
|
89
|
+
<p>
|
90
|
+
If the status is 'authorized', an access token will be returned which can then be used to start making API calls. If the status is either 'unauthorized' or 'unknown', your application will need to prompt the user to login and/or authorize by calling <%=Tr8n::Config.site_title %>.connect().
|
91
|
+
</p>
|
92
|
+
|
93
|
+
|
94
|
+
<pre class="code_snippet">
|
95
|
+
<%=Tr8n::Config.site_title %>.connect(function(response) {
|
96
|
+
if(response.status == 'authorized')) {
|
97
|
+
// User is logged in and has authorized your application.
|
98
|
+
// You can now make authorized calls to the API.
|
99
|
+
} else {
|
100
|
+
// User canceled the popup
|
101
|
+
}
|
102
|
+
});
|
103
|
+
</pre>
|
104
|
+
|
105
|
+
<p>
|
106
|
+
<%=Tr8n::Config.site_title %>.connect() will open a small popup window to the <%=Tr8n::Config.site_title %>.com site, prompting the user to login and authorize your application. The popup will close immediately after authorization is either allowed or disallowed.
|
107
|
+
</p>
|
108
|
+
|
109
|
+
<p>
|
110
|
+
Just like the <%=Tr8n::Config.site_title %>.getStatus() method, <%=Tr8n::Config.site_title %>.connect() returns user status and an access token if the user authorizes the application. Note: Because calling this method opens a popup window to the <%=Tr8n::Config.site_title %>.com site, it should only be called on a user action like a click on a button or link, as most browsers will block the popup unless they are the result of a user initiated event.
|
111
|
+
</p>
|
112
|
+
|
113
|
+
<h2><%=Tr8n::Config.site_title %>.logout</h2>
|
114
|
+
|
115
|
+
<p>
|
116
|
+
At some point you may wish to offer your users a way to logout of <%=Tr8n::Config.site_title %>. To do this the Javascript SDK offers the logout() method.
|
117
|
+
</p>
|
118
|
+
|
119
|
+
<pre class="code_snippet">
|
120
|
+
<%=Tr8n::Config.site_title %>.logout(function() {
|
121
|
+
// The user is now logged out of <%=Tr8n::Config.site_title %>
|
122
|
+
// Your application will no longer be able to make api calls on the users behalf until they log back in
|
123
|
+
});
|
124
|
+
</pre>
|
125
|
+
|
126
|
+
|
127
|
+
<h2>Status Change Events</h2>
|
128
|
+
<p>
|
129
|
+
The Javascript SDK also provides an 'auth:statusChange' event that can be subscribed to. The event fires when the user's status changes as the result of calling one of these methods.
|
130
|
+
</p>
|
131
|
+
|
132
|
+
<pre class="code_snippet">
|
133
|
+
<%=Tr8n::Config.site_title %>.Event.bind('auth:statusChange',function(status) {
|
134
|
+
// status will be either 'authorized', 'unauthorized' or 'unknown'
|
135
|
+
});
|
136
|
+
</pre>
|
137
|
+
|
138
|
+
<p>
|
139
|
+
Similar to jQuery, you can subscribe/unsubscribe from events using bind (<%=Tr8n::Config.site_title %>.Event.bind) and unbind (<%=Tr8n::Config.site_title %>.Event.unbind).
|
140
|
+
</p>
|
141
|
+
|
142
|
+
|
143
|
+
<h2>Making API Calls</h2>
|
144
|
+
|
145
|
+
<p>
|
146
|
+
Once you have an authenticated user, you are free to make calls to the <%=Tr8n::Config.site_title %> API. With the Javascript SDK, developers get full access to the API directly through the user's browser via the <%=Tr8n::Config.site_title %>.api() method.
|
147
|
+
</p>
|
148
|
+
|
149
|
+
<p>
|
150
|
+
The first argument is the path to the API method and it is the only required argument. IDs are embedded before the action so the urls read more like a sentence. For instance, to get all profile 101’s tree matches you would request:
|
151
|
+
</p>
|
152
|
+
|
153
|
+
<pre class="code_snippet">
|
154
|
+
<%=Tr8n::Config.site_title %>.api('/profile-101/tree_matches', function(response) {
|
155
|
+
// returns a list of tree matches for profile with id 101
|
156
|
+
});
|
157
|
+
</pre>
|
158
|
+
|
159
|
+
<p>
|
160
|
+
Omitting the ids in urls implies the action should be applied to the current user’s data.
|
161
|
+
</p>
|
162
|
+
|
163
|
+
<pre class="code_snippet">
|
164
|
+
<%=Tr8n::Config.site_title %>.api('/profile', function(response) {
|
165
|
+
// returns current user's profile data
|
166
|
+
// alert(response.name)
|
167
|
+
});
|
168
|
+
</pre>
|
169
|
+
|
170
|
+
|
171
|
+
<p>
|
172
|
+
Specific parameters can optionally be passed in as the second argument.
|
173
|
+
</p>
|
174
|
+
|
175
|
+
<pre class="code_snippet">
|
176
|
+
<%=Tr8n::Config.site_title %>.api('/profile', { fields : 'first_name'}, function(data)
|
177
|
+
// only returns first name of profile current users profile
|
178
|
+
alert("Welcome + " " + response.first_name);
|
179
|
+
});
|
180
|
+
</pre>
|
181
|
+
|
182
|
+
<p>
|
183
|
+
For post requests, you'll need to pass a 'method' parameter in the second argument.
|
184
|
+
</p>
|
185
|
+
|
186
|
+
|
187
|
+
<pre class="code_snippet">
|
188
|
+
<%=Tr8n::Config.site_title %>.api('/profile', {
|
189
|
+
method:'post',
|
190
|
+
first_name: 'John'
|
191
|
+
},
|
192
|
+
function(response) {
|
193
|
+
// the current users first name is now set to 'John'
|
194
|
+
}
|
195
|
+
);
|
196
|
+
</pre>
|
197
|
+
|
198
|
+
</p>
|
199
|
+
|
200
|
+
</div>
|
201
|
+
|
202
|
+
<%= render :partial => "footer" %>
|