Updated CMS

This commit is contained in:
jvelilla
2014-10-01 17:47:16 -03:00
parent 5a5eb0dea2
commit 5525134148
15 changed files with 122 additions and 133 deletions

2
.gitignore vendored
View File

@@ -1,2 +1,4 @@
EIFGENs
*.swp
*.log*
*.rc

View File

@@ -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)
-- <Precursor>
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
-- <Precursor>
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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -46,7 +46,14 @@ feature -- HTTP Methods
do_get (req: WSF_REQUEST; res: WSF_RESPONSE)
-- <Precursor>
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

View File

@@ -38,8 +38,6 @@ feature -- Implementation
setup_router
-- Setup `router'.
local
fhdl: WSF_FILE_SYSTEM_HANDLER
do
create router.make (5)
configure_api_node

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -17,7 +17,7 @@
<library name="wsf_extension" location="$ISE_LIBRARY\contrib\library\web\framework\ewf\wsf\wsf_extension-safe.ecf" readonly="false"/>
<library name="cms" location="..\..\cms\cms.ecf"/>
<library name="cms" location="..\..\cms\cms.ecf" readonly="false"/>
</target>
<target name="roc_api_any" extends="common">
<root class="EWF_ROC_SERVER" feature="make_and_launch"/>

View File

@@ -15,7 +15,6 @@
<library name="layout" location="..\..\..\layout\layout.ecf"/>
<library name="logging" location="$ISE_LIBRARY\library\runtime\logging\logging-safe.ecf"/>
<library name="mysql" location="$ISE_LIBRARY\library\store\dbms\rdbms\mysql\mysql-safe.ecf"/>
<library name="odbc" location="$ISE_LIBRARY\library\store\dbms\rdbms\odbc\odbc-safe.ecf"/>
<library name="store" location="$ISE_LIBRARY\library\store\store-safe.ecf" readonly="false"/>
<library name="thread" location="$ISE_LIBRARY\library\thread\thread-safe.ecf"/>
<library name="time" location="$ISE_LIBRARY\library\time\time-safe.ecf"/>
@@ -27,6 +26,11 @@
</file_rule>
</cluster>
<cluster name="interface" location="..\..\interface\" recursive="true"/>
<cluster name="common" location="..\common\" recursive="true"/>
<cluster name="common" location="..\common\" recursive="true">
<file_rule>
<exclude>/database/database_connection_odbc.e</exclude>
</file_rule>
</cluster>
</target>
</system>