diff --git a/.gitignore b/.gitignore index 2ca11d6..1878f3d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ EIFGENs *.swp +*.log* +*.rc \ No newline at end of file diff --git a/cms/src/modules/node/handler/node_content_handler.e b/cms/src/modules/node/handler/node_content_handler.e index 7fe8fc3..a15bf8a 100644 --- a/cms/src/modules/node/handler/node_content_handler.e +++ b/cms/src/modules/node/handler/node_content_handler.e @@ -70,7 +70,7 @@ feature -- HTTP Methods -- Existing node if attached {WSF_STRING} req.path_parameter ("id") as l_id then if l_id.is_integer and then attached {CMS_NODE} api_service.node (l_id.integer_value) as l_node then - create {NODE_VIEW_CMS_RESPONSE} l_page.make (req, res, setup, "modules/node_content") + create {GENERIC_VIEW_CMS_RESPONSE} l_page.make (req, res, setup, "modules/node_content") l_page.add_variable (l_node.content, "content") l_page.add_variable (l_id.value, "id") l_page.execute @@ -78,12 +78,7 @@ feature -- HTTP Methods do_error (req, res, l_id) end else - -- Todo extract method - to_implement ("Check how to implemet API error") --- create l_page.make (req, "master2/error.tpl") --- l_page.set_value ("500", "code") --- l_page.set_value (req.absolute_script_url (req.path_info), "request") --- l_page.send_to (res) + (create {ERROR_500_CMS_RESPONSE}.make (req, res, setup, "master2/error")).execute end else (create {CMS_GENERIC_RESPONSE}).new_response_unauthorized (req, res) @@ -94,7 +89,7 @@ feature -- HTTP Methods do_post (req: WSF_REQUEST; res: WSF_RESPONSE) -- local - u_node: CMS_NODE + l_page: CMS_RESPONSE do if attached current_user_name (req) then if attached {WSF_STRING} req.path_parameter ("id") as l_id then @@ -103,22 +98,14 @@ feature -- HTTP Methods if l_method.is_case_insensitive_equal ("PUT") then do_put (req, res) else - to_implement ("Check how to implement API error") --- create l_page.make (req, "master2/error.tpl") --- l_page.set_value ("500", "code") --- l_page.set_value (req.absolute_script_url (req.path_info), "request") --- l_page.send_to (res) + (create {ERROR_500_CMS_RESPONSE}.make (req, res, setup, "master2/error")).execute end end else do_error (req, res, l_id) end else - to_implement ("Check how to implement API error") --- create l_page.make (req, "master2/error.tpl") --- l_page.set_value ("500", "code") --- l_page.set_value (req.absolute_script_url (req.path_info), "request") --- l_page.send_to (res) + (create {ERROR_500_CMS_RESPONSE}.make (req, res, setup, "master2/error")).execute end else (create {CMS_GENERIC_RESPONSE}).new_response_unauthorized (req, res) @@ -129,7 +116,7 @@ feature -- HTTP Methods -- local u_node: CMS_NODE --- l_page: ROC_RESPONSE + l_page: CMS_RESPONSE do to_implement ("Check if user has permissions") if attached current_user (req) as l_user then @@ -143,11 +130,7 @@ feature -- HTTP Methods do_error (req, res, l_id) end else - to_implement ("Check how to implement API error") --- create l_page.make (req, "master2/error.tpl") --- l_page.set_value ("500", "code") --- l_page.set_value (req.absolute_script_url (req.path_info), "request") --- l_page.send_to (res) + (create {ERROR_500_CMS_RESPONSE}.make (req, res, setup, "master2/error")).execute end else (create {CMS_GENERIC_RESPONSE}).new_response_unauthorized (req, res) @@ -158,18 +141,20 @@ feature -- Error do_error (req: WSF_REQUEST; res: WSF_RESPONSE; a_id: WSF_STRING) -- Handling error. local + l_page: CMS_RESPONSE do - to_implement ("Check how to implement API error") --- create l_page.make (req, "master2/error.tpl") --- if a_id.is_integer then --- -- resource not found --- l_page.set_value ("404", "code") --- else --- -- bad request --- l_page.set_value ("400", "code") --- end --- l_page.set_value (req.absolute_script_url (req.path_info), "request") --- l_page.send_to(res) + create {GENERIC_VIEW_CMS_RESPONSE} l_page.make (req, res, setup, "master2/error") + l_page.add_variable (req.absolute_script_url (req.path_info), "request") + if a_id.is_integer then + -- resource not found + l_page.add_variable ("404", "code") + l_page.set_status_code (404) + else + -- bad request + l_page.add_variable ("400", "code") + l_page.set_status_code (400) + end + l_page.execute end diff --git a/cms/src/modules/node/handler/node_handler.e b/cms/src/modules/node/handler/node_handler.e index 1580099..e9d789f 100644 --- a/cms/src/modules/node/handler/node_handler.e +++ b/cms/src/modules/node/handler/node_handler.e @@ -69,7 +69,7 @@ feature -- HTTP Methods -- Existing node if attached {WSF_STRING} req.path_parameter ("id") as l_id then if l_id.is_integer and then attached {CMS_NODE} api_service.node (l_id.integer_value) as l_node then - create {NODE_VIEW_CMS_RESPONSE} l_page.make (req, res, setup,"modules/node") + create {GENERIC_VIEW_CMS_RESPONSE} l_page.make (req, res, setup,"modules/node") l_page.add_variable (l_node, "node") l_page.execute else @@ -97,11 +97,7 @@ feature -- HTTP Methods elseif l_method.is_case_insensitive_equal ("PUT") then do_put (req, res) else - to_implement ("Implement specific responses for 500 pages") - create {NODE_VIEW_CMS_RESPONSE} l_page.make (req, res, setup, "master2/error") - l_page.add_variable ("500", "code") - l_page.add_variable (req.absolute_script_url (req.path_info), "request") - l_page.execute + (create {ERROR_500_CMS_RESPONSE}.make (req, res, setup, "master2/error")).execute end end else @@ -136,7 +132,7 @@ feature -- HTTP Methods do_error (req, res, l_id) end else - -- Internal server error + (create {ERROR_500_CMS_RESPONSE}.make (req, res, setup, "master2/error")).execute end else (create {CMS_GENERIC_RESPONSE}).new_response_unauthorized (req, res) @@ -156,7 +152,7 @@ feature -- HTTP Methods do_error (req, res, l_id) end else - -- Internal server error + (create {ERROR_500_CMS_RESPONSE}.make (req, res, setup, "master2/error")).execute end else (create {CMS_GENERIC_RESPONSE}).new_response_unauthorized (req, res) @@ -170,17 +166,18 @@ feature -- Error local l_page: CMS_RESPONSE do - to_implement ("Not implemented") --- create l_page.make (req, "master2/error.tpl") --- if a_id.is_integer then --- -- resource not found --- l_page.set_value ("404", "code") --- else --- -- bad request --- l_page.set_value ("400", "code") --- end --- l_page.set_value (req.absolute_script_url (req.path_info), "request") --- l_page.send_to (res) + create {GENERIC_VIEW_CMS_RESPONSE} l_page.make (req, res, setup, "master2/error") + l_page.add_variable (req.absolute_script_url (req.path_info), "request") + if a_id.is_integer then + -- resource not found + l_page.add_variable ("404", "code") + l_page.set_status_code (404) + else + -- bad request + l_page.add_variable ("400", "code") + l_page.set_status_code (400) + end + l_page.execute end feature {NONE} -- Node @@ -190,7 +187,7 @@ feature {NONE} -- Node l_page: CMS_RESPONSE do if attached current_user_name (req) then - create {NODE_VIEW_CMS_RESPONSE} l_page.make (req, res, setup, "modules/node") + create {GENERIC_VIEW_CMS_RESPONSE} l_page.make (req, res, setup, "modules/node") l_page.add_variable (setup.is_html, "html") l_page.add_variable (setup.is_web, "web") l_page.execute diff --git a/cms/src/modules/node/handler/node_summary_handler.e b/cms/src/modules/node/handler/node_summary_handler.e index 9e38e96..8e24af2 100644 --- a/cms/src/modules/node/handler/node_summary_handler.e +++ b/cms/src/modules/node/handler/node_summary_handler.e @@ -69,9 +69,7 @@ feature -- HTTP Methods -- Existing node if attached {WSF_STRING} req.path_parameter ("id") as l_id then if l_id.is_integer and then attached {CMS_NODE} api_service.node (l_id.integer_value) as l_node then - create {NODE_VIEW_CMS_RESPONSE} l_page.make (req, res, setup, "modules/node_summary") - l_page.add_variable (setup.is_html, "html") - l_page.add_variable (setup.is_web, "web") + create {GENERIC_VIEW_CMS_RESPONSE} l_page.make (req, res, setup, "modules/node_summary") l_page.add_variable (l_node.summary, "summary") l_page.add_variable (l_id.value, "id") l_page.execute @@ -79,11 +77,7 @@ feature -- HTTP Methods do_error (req, res, l_id) end else - to_implement ("Check how to implement API error") --- create l_page.make (req, "master2/error.tpl") --- l_page.set_value ("500", "code") --- l_page.set_value (req.absolute_script_url (req.path_info), "request") --- l_page.send_to (res) + (create {ERROR_500_CMS_RESPONSE}.make (req, res, setup, "master2/error")).execute end else (create {CMS_GENERIC_RESPONSE}).new_response_unauthorized (req, res) @@ -103,22 +97,14 @@ feature -- HTTP Methods if l_method.is_case_insensitive_equal ("PUT") then do_put (req, res) else - to_implement ("Check how to implement API error") --- create l_page.make (req, "master2/error.tpl") --- l_page.set_value ("500", "code") --- l_page.set_value (req.absolute_script_url (req.path_info), "request") --- l_page.send_to (res) + (create {ERROR_500_CMS_RESPONSE}.make (req, res, setup, "master2/error")).execute end end else do_error (req, res, l_id) end else - to_implement ("Check how to implement API error") --- create l_page.make (req, "master2/error.tpl") --- l_page.set_value ("500", "code") --- l_page.set_value (req.absolute_script_url (req.path_info), "request") --- l_page.send_to (res) + (create {ERROR_500_CMS_RESPONSE}.make (req, res, setup, "master2/error")).execute end else (create {CMS_GENERIC_RESPONSE}).new_response_unauthorized (req, res) @@ -130,7 +116,6 @@ feature -- HTTP Methods local u_node: CMS_NODE do - to_implement ("Check if user has permissions!!!") if attached current_user (req) as l_user then if attached {WSF_STRING} req.path_parameter ("id") as l_id then if l_id.is_integer and then attached {CMS_NODE} api_service.node (l_id.integer_value) as l_node then @@ -142,11 +127,7 @@ feature -- HTTP Methods do_error (req, res, l_id) end else - to_implement ("Check how to implement API error") --- create l_page.make (req, "master2/error.tpl") --- l_page.set_value ("500", "code") --- l_page.set_value (req.absolute_script_url (req.path_info), "request") --- l_page.send_to (res) + (create {ERROR_500_CMS_RESPONSE}.make (req, res, setup, "master2/error")).execute end else (create {CMS_GENERIC_RESPONSE}).new_response_unauthorized (req, res) @@ -155,21 +136,24 @@ feature -- HTTP Methods feature -- Error + do_error (req: WSF_REQUEST; res: WSF_RESPONSE; a_id: WSF_STRING) -- Handling error. local --- l_page: ROC_RESPONSE + l_page: CMS_RESPONSE do --- create l_page.make (req, "master2/error.tpl") --- if a_id.is_integer then --- -- resource not found --- l_page.set_value ("404", "code") --- else --- -- bad request --- l_page.set_value ("400", "code") --- end --- l_page.set_value (req.absolute_script_url (req.path_info), "request") --- l_page.send_to(res) + create {GENERIC_VIEW_CMS_RESPONSE} l_page.make (req, res, setup, "master2/error") + l_page.add_variable (req.absolute_script_url (req.path_info), "request") + if a_id.is_integer then + -- resource not found + l_page.add_variable ("404", "code") + l_page.set_status_code (404) + else + -- bad request + l_page.add_variable ("400", "code") + l_page.set_status_code (400) + end + l_page.execute end diff --git a/cms/src/modules/node/handler/node_title_handler.e b/cms/src/modules/node/handler/node_title_handler.e index 7218ddc..e13dca7 100644 --- a/cms/src/modules/node/handler/node_title_handler.e +++ b/cms/src/modules/node/handler/node_title_handler.e @@ -69,7 +69,7 @@ feature -- HTTP Methods -- Existing node if attached {WSF_STRING} req.path_parameter ("id") as l_id then if l_id.is_integer and then attached {CMS_NODE} api_service.node (l_id.integer_value) as l_node then - create {NODE_VIEW_CMS_RESPONSE} l_page.make (req, res, setup, "modules/node_title") + create {GENERIC_VIEW_CMS_RESPONSE} l_page.make (req, res, setup, "modules/node_title") l_page.add_variable (setup.is_html, "html") l_page.add_variable (setup.is_web, "web") l_page.add_variable (l_node.title, "title") @@ -80,7 +80,7 @@ feature -- HTTP Methods end else to_implement ("Check how to implement API error") --- create l_page.make (req, "master2/error.tpl") +-- create l_page.make (req, "master2/error") -- l_page.set_value ("500", "code") -- l_page.set_value (req.absolute_script_url (req.path_info), "request") -- l_page.send_to (res) @@ -102,22 +102,14 @@ feature -- HTTP Methods if l_method.is_case_insensitive_equal ("PUT") then do_put (req, res) else - to_implement ("Check how to implement API error") --- create l_page.make (req, "master2/error.tpl") --- l_page.set_value ("500", "code") --- l_page.set_value (req.absolute_script_url (req.path_info), "request") --- l_page.send_to (res) + (create {ERROR_500_CMS_RESPONSE}.make (req, res, setup, "master2/error")).execute end end else do_error (req, res, l_id) end else - to_implement ("Check how to implement API error") --- create l_page.make (req, "master2/error.tpl") --- l_page.set_value ("500", "code") --- l_page.set_value (req.absolute_script_url (req.path_info), "request") --- l_page.send_to (res) + (create {ERROR_500_CMS_RESPONSE}.make (req, res, setup, "master2/error")).execute end else (create {CMS_GENERIC_RESPONSE}).new_response_unauthorized (req, res) @@ -141,11 +133,7 @@ feature -- HTTP Methods do_error (req, res, l_id) end else - to_implement ("check how to implement API error") --- create l_page.make (req, "master2/error.tpl") --- l_page.set_value ("500", "code") --- l_page.set_value (req.absolute_script_url (req.path_info), "request") --- l_page.send_to (res) + (create {ERROR_500_CMS_RESPONSE}.make (req, res, setup, "master2/error")).execute end else (create {CMS_GENERIC_RESPONSE}).new_response_unauthorized (req, res) @@ -157,18 +145,20 @@ feature -- Error do_error (req: WSF_REQUEST; res: WSF_RESPONSE; a_id: WSF_STRING) -- Handling error. local + l_page: CMS_RESPONSE do - to_implement ("Check how to add API error") --- create l_page.make (req, "master2/error.tpl") --- if a_id.is_integer then --- -- resource not found --- l_page.set_value ("404", "code") --- else --- -- bad request --- l_page.set_value ("400", "code") --- end --- l_page.set_value (req.absolute_script_url (req.path_info), "request") --- l_page.send_to (res) + create {GENERIC_VIEW_CMS_RESPONSE} l_page.make (req, res, setup, "master2/error") + l_page.add_variable (req.absolute_script_url (req.path_info), "request") + if a_id.is_integer then + -- resource not found + l_page.add_variable ("404", "code") + l_page.set_status_code (404) + else + -- bad request + l_page.add_variable ("400", "code") + l_page.set_status_code (400) + end + l_page.execute end diff --git a/cms/src/modules/node/handler/nodes_handler.e b/cms/src/modules/node/handler/nodes_handler.e index 6b99297..f1097db 100644 --- a/cms/src/modules/node/handler/nodes_handler.e +++ b/cms/src/modules/node/handler/nodes_handler.e @@ -46,7 +46,14 @@ feature -- HTTP Methods do_get (req: WSF_REQUEST; res: WSF_RESPONSE) -- + local + l_page: CMS_RESPONSE do - (create {NODES_VIEW_CMS_RESPONSE}.make (req, res, setup,"modules/nodes")).execute + -- At the moment the template is hardcoded, but we can + -- get them from the configuration file and load them into + -- the setup class. + create {GENERIC_VIEW_CMS_RESPONSE} l_page.make (req, res, setup, "modules/nodes") + l_page.add_variable (api_service.nodes, "nodes") + l_page.execute end end diff --git a/cms/src/modules/node/node_module.e b/cms/src/modules/node/node_module.e index 0470288..9e8a805 100644 --- a/cms/src/modules/node/node_module.e +++ b/cms/src/modules/node/node_module.e @@ -38,8 +38,6 @@ feature -- Implementation setup_router -- Setup `router'. - local - fhdl: WSF_FILE_SYSTEM_HANDLER do create router.make (5) configure_api_node diff --git a/cms/src/service/cms_request_util.e b/cms/src/service/cms_request_util.e index 300d41d..e9e26c8 100644 --- a/cms/src/service/cms_request_util.e +++ b/cms/src/service/cms_request_util.e @@ -21,8 +21,8 @@ feature -- User if attached {CMS_USER} current_user (req) as l_user then Result := l_user.name end - fixme ("Workaround to add nodes!!!") - Result := "admin" -- Workaround + + end current_user (req: WSF_REQUEST): detachable CMS_USER diff --git a/cms/src/service/cms_service.e b/cms/src/service/cms_service.e index 6343ab0..85fb7a1 100644 --- a/cms/src/service/cms_service.e +++ b/cms/src/service/cms_service.e @@ -17,6 +17,13 @@ inherit execute_default end + WSF_FILTERED_SERVICE + + WSF_FILTER + rename + execute as execute_filter + end + WSF_NO_PROXY_POLICY WSF_URI_HELPER_FOR_ROUTED_SERVICE @@ -37,6 +44,7 @@ feature {NONE} -- Initialization setup := a_setup configuration := a_setup.configuration modules := a_setup.modules + initialize_users initialize_auth_engine initialize_mailer initialize_router @@ -47,7 +55,6 @@ feature {NONE} -- Initialization initialize_users do - to_implement ("To Implement initialize users") end initialize_mailer diff --git a/cms/src/service/response/cms_response.e b/cms/src/service/response/cms_response.e index 1f96824..3dd6f57 100644 --- a/cms/src/service/response/cms_response.e +++ b/cms/src/service/response/cms_response.e @@ -92,6 +92,19 @@ feature -- Theme end end +feature -- Element Change + + set_status_code (a_status: INTEGER) + -- Set `status_code' with `a_status'. + note + EIS: "src=eiffel:?class=HTTP_STATUS_CODE" + do + to_implement ("Feature to test if a_status is a valid status code!!!.") + status_code := a_status + ensure + status_code_set: status_code = a_status + end + feature -- Generation prepare (page: CMS_HTML_PAGE) diff --git a/cms/src/modules/node/response/nodes_view_cms_response.e b/cms/src/service/response/error_500_cms_response.e similarity index 51% rename from cms/src/modules/node/response/nodes_view_cms_response.e rename to cms/src/service/response/error_500_cms_response.e index ecddfe0..24c908e 100644 --- a/cms/src/modules/node/response/nodes_view_cms_response.e +++ b/cms/src/service/response/error_500_cms_response.e @@ -1,10 +1,10 @@ note - description: "Summary description for {NODE_VIEW_CMS_RESPONSE}." + description: "Summary description for {ERROR_500_CMS_RESPONSE}." date: "$Date$" revision: "$Revision$" class - NODES_VIEW_CMS_RESPONSE + ERROR_500_CMS_RESPONSE inherit @@ -20,7 +20,9 @@ feature -- Generation custom_prepare (page: CMS_HTML_PAGE) do - page.register_variable (setup.api_service.nodes, "nodes") + page.register_variable (request.absolute_script_url (request.path_info), "request") + page.register_variable ("500", "code") + page.set_status_code (500) end feature -- Execution @@ -28,7 +30,7 @@ feature -- Execution process -- Computed response message. do - set_title ("List of Nodes") + set_title ("Internal Server Error") set_page_title (Void) end end diff --git a/cms/src/modules/node/response/node_view_cms_response.e b/cms/src/service/response/generic_view_cms_response.e similarity index 90% rename from cms/src/modules/node/response/node_view_cms_response.e rename to cms/src/service/response/generic_view_cms_response.e index f115673..28d01bc 100644 --- a/cms/src/modules/node/response/node_view_cms_response.e +++ b/cms/src/service/response/generic_view_cms_response.e @@ -4,7 +4,7 @@ note revision: "$Revision$" class - NODE_VIEW_CMS_RESPONSE + GENERIC_VIEW_CMS_RESPONSE inherit @@ -30,7 +30,7 @@ feature -- Execution process -- Computed response message. do - set_title ("List of Nodes") + set_title ("CMS") set_page_title (Void) end end diff --git a/cms/src/kernel/cms_html_page.e b/cms/src/theme/cms_html_page.e similarity index 100% rename from cms/src/kernel/cms_html_page.e rename to cms/src/theme/cms_html_page.e diff --git a/examples/roc_api/roc_api.ecf b/examples/roc_api/roc_api.ecf index 68833eb..2cf8d79 100644 --- a/examples/roc_api/roc_api.ecf +++ b/examples/roc_api/roc_api.ecf @@ -17,7 +17,7 @@ - + diff --git a/persistence/implementation/mysql/persistence_mysql.ecf b/persistence/implementation/mysql/persistence_mysql.ecf index 8b0e9aa..d66d48e 100644 --- a/persistence/implementation/mysql/persistence_mysql.ecf +++ b/persistence/implementation/mysql/persistence_mysql.ecf @@ -15,7 +15,6 @@ - @@ -27,6 +26,11 @@ - + + + /database/database_connection_odbc.e + + +