From 0a584a3d14e626c81dafb476bb42ff38b5641c3f Mon Sep 17 00:00:00 2001 From: hylom Date: Wed, 29 Mar 2017 00:51:59 +0900 Subject: [PATCH] Model::Comments: add hard_delete() --- src/newslash_web/lib/Newslash/Model/Comments.pm | 41 +++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/newslash_web/lib/Newslash/Model/Comments.pm b/src/newslash_web/lib/Newslash/Model/Comments.pm index a087bd7f..12098f7e 100644 --- a/src/newslash_web/lib/Newslash/Model/Comments.pm +++ b/src/newslash_web/lib/Newslash/Model/Comments.pm @@ -574,4 +574,45 @@ sub update { return 1; } +# delete comment from database +# this method is for test purpose only. +sub hard_delete { + my $self = shift; + return if $self->check_readonly; + my $params = {@_}; + + my $cid = $params->{cid}; + return if !$cid; + + my $error = 0; + my $sql; + + my $dbh = $self->connect_db({AutoCommit => 0,}); + for my $table (qw(comments comment_text)) { + my $sql = "DELETE FROM $table WHERE cid = ?"; + my $rs = $dbh->do($sql, undef, $cid); + if (!defined $rs || $rs == 0) { + Mojo::Log->new->warn("DELETE FROM $table failed. cid is $cid."); + $error = 1; + } + } + $dbh->commit; + $self->disconnect_db; + + return !$error; + + # delete firehose item + # delete firehose_text item + # delete firehose_topics_rendererd item + # delete globjs + # delete stories item + # delete story_param + # delete story_text + # delete story_topics_chosen + # delete story_topics_rendered + # delete tags + + return; +} + 1; -- 2.11.0