From d01f47f1ee7930df20634677c3abb1cc556ba4e5 Mon Sep 17 00:00:00 2001 From: Colin Adams Date: Sat, 16 Mar 2013 15:12:58 +0000 Subject: [PATCH] Implemented 414 and 503 responses on WSF_ROUTED_SERVICE --- .../src/resource/order_handler.e | 28 +++++-------------- examples/restbucksCRUD/src/restbucks_server.e | 14 +--------- .../server/wsf/router/wsf_routed_service.e | 3 ++ 3 files changed, 11 insertions(+), 34 deletions(-) diff --git a/examples/restbucksCRUD/src/resource/order_handler.e b/examples/restbucksCRUD/src/resource/order_handler.e index c11883d1..0bddd924 100644 --- a/examples/restbucksCRUD/src/resource/order_handler.e +++ b/examples/restbucksCRUD/src/resource/order_handler.e @@ -4,22 +4,10 @@ note date: "$Date$" revision: "$Revision$" -class - ORDER_HANDLER +class ORDER_HANDLER inherit - WSF_URI_HANDLER - rename - execute as uri_execute, - new_mapping as new_uri_mapping - end WSF_URI_TEMPLATE_HANDLER - rename - execute as uri_template_execute, - new_mapping as new_uri_template_mapping - select - new_uri_template_mapping - end WSF_RESOURCE_HANDLER_HELPER redefine @@ -28,22 +16,20 @@ inherit do_put, do_delete end + SHARED_DATABASE_API + SHARED_EJSON + REFACTORING_HELPER + SHARED_ORDER_VALIDATION WSF_SELF_DOCUMENTED_HANDLER -feature -- execute +feature -- Execute - uri_execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler - do - execute_methods (req, res) - end - - uri_template_execute (req: WSF_REQUEST; res: WSF_RESPONSE) + execute (req: WSF_REQUEST; res: WSF_RESPONSE) -- Execute request handler do execute_methods (req, res) diff --git a/examples/restbucksCRUD/src/restbucks_server.e b/examples/restbucksCRUD/src/restbucks_server.e index 3fbd8add..56409c57 100644 --- a/examples/restbucksCRUD/src/restbucks_server.e +++ b/examples/restbucksCRUD/src/restbucks_server.e @@ -10,9 +10,6 @@ inherit ANY WSF_URI_TEMPLATE_ROUTED_SERVICE - redefine - execute_default - end WSF_HANDLER_HELPER @@ -42,18 +39,9 @@ feature {NONE} -- Initialization router.handle_with_request_methods ("/api/doc", doc, router.methods_GET) end -feature -- Execution - - execute_default (req: WSF_REQUEST; res: WSF_RESPONSE) - -- I'm using this method to handle the method not allowed response - -- in the case that the given uri does not have a corresponding http method - -- to handle it. - do - Precursor (req, res) - end note - copyright: "2011-2012, Javier Velilla and others" + copyright: "2011-2013, Javier Velilla and others" license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" source: "[ Eiffel Software diff --git a/library/server/wsf/router/wsf_routed_service.e b/library/server/wsf/router/wsf_routed_service.e index 9e94e806..a437eadb 100644 --- a/library/server/wsf/router/wsf_routed_service.e +++ b/library/server/wsf/router/wsf_routed_service.e @@ -41,6 +41,8 @@ feature -- Execution req_attached: req /= Void res_attached: res /= Void do + --| When we reach here, the request has already passed check for 400 (Bad request), + --| which is implemented in WSF_REQUEST.make_from_wgi (when it calls `analyze'). if unavailable then handle_unavailable (res) elseif maximum_uri_length > 0 and then req.request_uri.count.to_natural_32 > maximum_uri_length then @@ -60,6 +62,7 @@ feature -- Execution local msg: WSF_DEFAULT_ROUTER_RESPONSE do + --| TODO: update this to distinguish between 501, 403 and 404 results. create msg.make_with_router (req, router) msg.set_documentation_included (True) res.send (msg)