From dd6246877d8dd2de5f71f51c58a90eb155785c34 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 26 Mar 2014 16:41:16 -0400 Subject: Almost done diff page --- models/issue.go | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) (limited to 'models/issue.go') diff --git a/models/issue.go b/models/issue.go index 47ec4edd..97e51a0c 100644 --- a/models/issue.go +++ b/models/issue.go @@ -173,14 +173,23 @@ type Comment struct { // CreateComment creates comment of issue or commit. func CreateComment(userId, issueId, commitId, line int64, content string) error { - _, err := orm.Insert(&Comment{ - PosterId: userId, - IssueId: issueId, - CommitId: commitId, - Line: line, - Content: content, - }) - return err + sess := orm.NewSession() + defer sess.Close() + sess.Begin() + + if _, err := orm.Insert(&Comment{PosterId: userId, IssueId: issueId, + CommitId: commitId, Line: line, Content: content, + }); err != nil { + sess.Rollback() + return err + } + + rawSql := "UPDATE `issue` SET num_comments = num_comments + 1 WHERE id = ?" + if _, err := sess.Exec(rawSql, issueId); err != nil { + sess.Rollback() + return err + } + return sess.Commit() } // GetIssueComments returns list of comment by given issue id. -- cgit v1.2.3