diff options
author | Jan Lehnardt <jan@apache.org> | 2018-09-20 11:53:47 +0200 |
---|---|---|
committer | Jan Lehnardt <jan@apache.org> | 2018-11-09 14:51:33 +0100 |
commit | 73b32713c33be7ddc2e64ab1fd1be0f472f6d3e2 (patch) | |
tree | e6841ffd71846f03c39ddc91527b568af2a3019a | |
parent | 0b88ebce3ba740314feb76231e0374539eb83383 (diff) | |
download | couchdb-73b32713c33be7ddc2e64ab1fd1be0f472f6d3e2.tar.gz |
feat: move handler definition to .app file
-rw-r--r-- | src/couch/src/couch.app.src | 36 | ||||
-rw-r--r-- | src/couch/src/couch_httpd.erl | 38 |
2 files changed, 39 insertions, 35 deletions
diff --git a/src/couch/src/couch.app.src b/src/couch/src/couch.app.src index 6af213624..208938745 100644 --- a/src/couch/src/couch.app.src +++ b/src/couch/src/couch.app.src @@ -48,5 +48,41 @@ ioq, couch_stats, hyper + ]}, + {env, [ + { httpd_global_handlers, [ + {"/", "{couch_httpd_misc_handlers, handle_welcome_req, <<\"Welcome\">>}"}, + {"favicon.ico", "{couch_httpd_misc_handlers, handle_favicon_req, \"{{prefix}}/share/www\"}"}, + {"_utils", "{couch_httpd_misc_handlers, handle_utils_dir_req, \"{{prefix}}/share/www\"}"}, + {"_all_dbs", "{couch_httpd_misc_handlers, handle_all_dbs_req}"}, + {"_active_tasks", "{couch_httpd_misc_handlers, handle_task_status_req}"}, + {"_config", "{couch_httpd_misc_handlers, handle_config_req}"}, + {"_replicate", "{couch_replicator_httpd, handle_req}"}, + {"_uuids", "{couch_httpd_misc_handlers, handle_uuids_req}"}, + {"_stats", "{couch_stats_httpd, handle_stats_req}"}, + {"_session", "{couch_httpd_auth, handle_session_req}"}, + {"_plugins", "{couch_plugins_httpd, handle_req}"}, + {"_system", "{chttpd_misc, handle_system_req}"} + ]}, + { httpd_db_handlers, [ + {"_all_docs", "{couch_mrview_http, handle_all_docs_req}"}, + {"_local_docs", "{couch_mrview_http, handle_local_docs_req}"}, + {"_design_docs", "{couch_mrview_http, handle_design_docs_req}"}, + {"_changes", "{couch_httpd_db, handle_db_changes_req}"}, + {"_compact", "{couch_httpd_db, handle_compact_req}"}, + {"_design", "{couch_httpd_db, handle_design_req}"}, + {"_temp_view", "{couch_mrview_http, handle_temp_view_req}"}, + {"_view_cleanup", "{couch_mrview_http, handle_cleanup_req}"} + ]}, + { httpd_design_handlers, [ + {"_compact", "{couch_mrview_http, handle_compact_req}"}, + {"_info", "{couch_mrview_http, handle_info_req}"}, + {"_list", "{couch_mrview_show, handle_view_list_req}"}, + {"_rewrite", "{couch_httpd_rewrite, handle_rewrite_req}"}, + {"_show", "{couch_mrview_show, handle_doc_show_req}"}, + {"_update", "{couch_mrview_show, handle_doc_update_req}"}, + {"_view", "{couch_mrview_http, handle_view_req}"}, + {"_view_changes", "{couch_mrview_http, handle_view_changes_req}"} + ]} ]} ]}. diff --git a/src/couch/src/couch_httpd.erl b/src/couch/src/couch_httpd.erl index 3177e0673..861fd58c4 100644 --- a/src/couch/src/couch_httpd.erl +++ b/src/couch/src/couch_httpd.erl @@ -106,53 +106,21 @@ start_link(Name, Options) -> ok = validate_bind_address(BindAddress), DefaultFun = make_arity_1_fun("{couch_httpd_db, handle_request}"), - - HttpdGlobalHandlers = [ - {"/", "{couch_httpd_misc_handlers, handle_welcome_req, <<\"Welcome\">>}"}, - {"favicon.ico", "{couch_httpd_misc_handlers, handle_favicon_req, \"{{prefix}}/share/www\"}"}, - {"_utils", "{couch_httpd_misc_handlers, handle_utils_dir_req, \"{{prefix}}/share/www\"}"}, - {"_all_dbs", "{couch_httpd_misc_handlers, handle_all_dbs_req}"}, - {"_active_tasks", "{couch_httpd_misc_handlers, handle_task_status_req}"}, - {"_config", "{couch_httpd_misc_handlers, handle_config_req}"}, - {"_replicate", "{couch_replicator_httpd, handle_req}"}, - {"_uuids", "{couch_httpd_misc_handlers, handle_uuids_req}"}, - {"_stats", "{couch_stats_httpd, handle_stats_req}"}, - {"_session", "{couch_httpd_auth, handle_session_req}"}, - {"_plugins", "{couch_plugins_httpd, handle_req}"}, - {"_system", "{chttpd_misc, handle_system_req}"} - ], + {ok, HttpdGlobalHandlers} = application:get_env(httpd_global_handlers), UrlHandlersList = lists:map( fun({UrlKey, SpecStr}) -> {?l2b(UrlKey), make_arity_1_fun(SpecStr)} end, HttpdGlobalHandlers), - HttpdDbHandlers = [ - {"_all_docs", "{couch_mrview_http, handle_all_docs_req}"}, - {"_local_docs", "{couch_mrview_http, handle_local_docs_req}"}, - {"_design_docs", "{couch_mrview_http, handle_design_docs_req}"}, - {"_changes", "{couch_httpd_db, handle_db_changes_req}"}, - {"_compact", "{couch_httpd_db, handle_compact_req}"}, - {"_design", "{couch_httpd_db, handle_design_req}"}, - {"_temp_view", "{couch_mrview_http, handle_temp_view_req}"}, - {"_view_cleanup", "{couch_mrview_http, handle_cleanup_req}"} - ], + {ok, HttpdDbHandlers} = application:get_env(httpd_db_handlers), DbUrlHandlersList = lists:map( fun({UrlKey, SpecStr}) -> {?l2b(UrlKey), make_arity_2_fun(SpecStr)} end, HttpdDbHandlers), - HttpdDesignHandlers = [ - {"_compact", "{couch_mrview_http, handle_compact_req}"}, - {"_info", "{couch_mrview_http, handle_info_req}"}, - {"_list", "{couch_mrview_show, handle_view_list_req}"}, - {"_rewrite", "{couch_httpd_rewrite, handle_rewrite_req}"}, - {"_show", "{couch_mrview_show, handle_doc_show_req}"}, - {"_update", "{couch_mrview_show, handle_doc_update_req}"}, - {"_view", "{couch_mrview_http, handle_view_req}"}, - {"_view_changes", "{couch_mrview_http, handle_view_changes_req}"} - ], + {ok, HttpdDesignHandlers} = application:get_env(httpd_design_handlers), DesignUrlHandlersList = lists:map( fun({UrlKey, SpecStr}) -> |