Updated CMS node and blog to remove extension data.

This commit is contained in:
jvelilla
2015-09-15 08:54:43 -03:00
parent f9ecd4956f
commit f7d68d09e4
6 changed files with 56 additions and 2 deletions

View File

@@ -108,6 +108,16 @@ feature -- Persistence
end
end
delete_by_id (a_nid: INTEGER_64)
-- remove node extensions by id `a_nid'.
local
l_parameters: STRING_TABLE [ANY]
do
create l_parameters.make (1)
l_parameters.put (a_nid, "nid")
sql_change (sql_delete_node_data, l_parameters)
end
feature {NONE} -- Implementation
node_data (a_node: CMS_NODE): detachable TUPLE [revision: INTEGER_64; tags: READABLE_STRING_32]
@@ -145,5 +155,6 @@ feature -- SQL
sql_select_node_data: STRING = "SELECT nid, revision, tags FROM blog_post_nodes WHERE nid=:nid AND revision<=:revision ORDER BY revision DESC LIMIT 1;"
sql_insert_node_data: STRING = "INSERT INTO blog_post_nodes (nid, revision, tags) VALUES (:nid, :revision, :tags);"
sql_update_node_data: STRING = "UPDATE blog_post_nodes SET nid=:nid, revision=:revision, tags=:tags WHERE nid=:nid AND revision=:revision;"
sql_delete_node_data: STRING = "DELETE FROM blog_post_nodes WHERE nid=:nid;"
end

View File

@@ -30,7 +30,7 @@ feature -- Forms ...
local
ti: WSF_FORM_NUMBER_INPUT
fs: WSF_FORM_FIELD_SET
l_parent_id, nid: INTEGER_64
l_parent_id: INTEGER_64
do
Precursor (response, f, a_node)
@@ -102,7 +102,6 @@ feature -- Forms ...
parent_validation (a_response: NODE_RESPONSE; fd: WSF_FORM_DATA)
local
l_selected: BOOLEAN
node_api: CMS_NODE_API
l_parent_id: INTEGER_64
nid: INTEGER_64

View File

@@ -49,6 +49,13 @@ feature -- Persistence
end
end
delete_by_id (a_nid: INTEGER_64)
-- remove node extensions by id `a_nid'.
require
valid_id: a_nid > 0
deferred
end
feature {NONE} -- Persistence implementation
store (a_node: G)

View File

@@ -61,6 +61,18 @@ feature {NONE} -- Implementation
end
end
extended_delete (a_node: CMS_NODE)
-- Delete extended data related to node `a_id'.
require
not error_handler.has_error
do
if attached node_storage_extension (a_node) as ext then
ext.delete_by_id (a_node.id)
end
end
feature -- Access
nodes_count: NATURAL_64
@@ -166,8 +178,16 @@ feature -- Change: Node
delete_node (a_node: CMS_NODE)
-- Delete `a_node'.
do
-- TODO
-- Check if we need to use a transaction
-- we delete a node
-- node_revisions
-- and extensions (PAGE, BLOG, etc)
if a_node.has_id then
delete_node_by_id (a_node.id)
if not error_handler.has_error then
extended_delete (a_node)
end
end
end

View File

@@ -349,6 +349,9 @@ feature -- Change: Node
create l_parameters.make (1)
l_parameters.put (a_id, "nid")
sql_change (sql_delete_node, l_parameters)
-- we remove node_revisions and pages.
sql_change (sql_delete_node_revisions, l_parameters)
end
restore_node_by_id (a_id: INTEGER_64)
@@ -520,6 +523,8 @@ feature {NONE} -- Queries
WHERE pn.parent = :nid AND node.status != -1 GROUP BY node.nid, node.revision;
]"
sql_delete_node_revisions: STRING = "DELETE FROM node_revisions WHERE nid=:nid;"
feature {NONE} -- Sql Queries: USER_ROLES collaborators, author
Select_user_author: STRING = "SELECT uid, name, password, salt, email, users.status, users.created, signed FROM nodes INNER JOIN users ON nodes.author=users.uid AND nodes.nid = :nid AND nodes.revision = :revision;"

View File

@@ -112,6 +112,17 @@ feature -- Persistence
end
end
delete_by_id (a_nid: INTEGER_64)
-- remove node extensions by id `a_nid'.
local
l_parameters: STRING_TABLE [ANY]
do
create l_parameters.make (1)
l_parameters.put (a_nid, "nid")
sql_change (sql_delete_node_data, l_parameters)
end
feature {NONE} -- Implementation
node_data (a_node: CMS_NODE): detachable TUPLE [revision: INTEGER_64; parent_id: INTEGER_64]
@@ -143,5 +154,6 @@ feature -- SQL
sql_select_node_data: STRING = "SELECT nid, revision, parent FROM page_nodes WHERE nid=:nid AND revision<=:revision ORDER BY revision DESC LIMIT 1;"
sql_insert_node_data: STRING = "INSERT INTO page_nodes (nid, revision, parent) VALUES (:nid, :revision, :parent);"
sql_update_node_data: STRING = "UPDATE page_nodes SET nid=:nid, revision=:revision, parent=:parent WHERE nid=:nid AND revision=:revision;"
sql_delete_node_data: STRING = "DELETE FROM page_nodes WHERE nid=:nid;"
end