diff --git a/src/main/scala/app/IssuesController.scala b/src/main/scala/app/IssuesController.scala index 67bbc5b..adee1e8 100644 --- a/src/main/scala/app/IssuesController.scala +++ b/src/main/scala/app/IssuesController.scala @@ -112,14 +112,12 @@ // record activity recordCreateIssueActivity(owner, name, userName, issueId, form.title) - val uri = s"/${owner}/${name}/issues/${issueId}" - // notifications Notifier().toNotify(repository, issueId, form.content.getOrElse("")){ - Notifier.msgIssue(baseUrl + uri) + Notifier.msgIssue(s"${baseUrl}/${owner}/${name}/issues/${issueId}") } - redirect(uri) + redirect(s"/${owner}/${name}/issues/${issueId}") }) ajaxPost("/:owner/:repository/issues/edit/:id", issueEditForm)(readableUsersOnly { (form, repository) => @@ -136,21 +134,15 @@ post("/:owner/:repository/issue_comments/new", commentForm)(readableUsersOnly { (form, repository) => handleComment(form.issueId, Some(form.content), repository)() map { case (issue, id) => - if(issue.isPullRequest){ - redirect(s"/${repository.owner}/${repository.name}/pull/${form.issueId}#comment-${id}") - } else { - redirect(s"/${repository.owner}/${repository.name}/issues/${form.issueId}#comment-${id}") - } + redirect(s"/${repository.owner}/${repository.name}/${ + if(issue.isPullRequest) "pull" else "issues"}/${form.issueId}#comment-${id}") } getOrElse NotFound }) post("/:owner/:repository/issue_comments/state", issueStateForm)(readableUsersOnly { (form, repository) => handleComment(form.issueId, form.content, repository)() map { case (issue, id) => - if(issue.isPullRequest){ - redirect(s"/${repository.owner}/${repository.name}/pull/${form.issueId}#comment-${id}") - } else { - redirect(s"/${repository.owner}/${repository.name}/issues/${form.issueId}#comment-${id}") - } + redirect(s"/${repository.owner}/${repository.name}/${ + if(issue.isPullRequest) "pull" else "issues"}/${form.issueId}#comment-${id}") } getOrElse NotFound }) @@ -289,9 +281,10 @@ val (action, recordActivity) = getAction(issue) .collect { - case "close" if(issue.isPullRequest) => true -> (Some("close") -> Some(recordClosePullRequestActivity _)) - case "close" if(!issue.isPullRequest) => true -> (Some("close") -> Some(recordCloseIssueActivity _)) - case "reopen" => false -> (Some("reopen") -> Some(recordReopenIssueActivity _)) + case "close" => true -> (Some("close") -> + Some(if(issue.isPullRequest) recordClosePullRequestActivity _ else recordCloseIssueActivity _)) + case "reopen" => false -> (Some("reopen") -> + Some(recordReopenIssueActivity _)) } .map { case (closed, t) => updateClosed(owner, name, issueId, closed) @@ -307,15 +300,29 @@ } // record activity - content foreach { content => - if(issue.isPullRequest) - recordCommentPullRequestActivity(owner, name, userName, issueId, content) - else - recordCommentIssueActivity(owner, name, userName, issueId, content) + content foreach { + (if(issue.isPullRequest) recordCommentPullRequestActivity _ else recordCommentIssueActivity _) + (owner, name, userName, issueId, _) } recordActivity foreach ( _ (owner, name, userName, issueId, issue.title) ) - (issue, commentId) + // notifications + Notifier() match { + case f => + content foreach { + f.toNotify(repository, issueId, _){ + Notifier.msgComment(s"${baseUrl}/${owner}/${name}/${ + if(issue.isPullRequest) "pull" else "issues"}/${issueId}#comment-${commentId}") + } + } + action foreach { + f.toNotify(repository, issueId, _){ + Notifier.msgStatus(s"${baseUrl}/${owner}/${name}/issues/${issueId}") + } + } + } + + issue -> commentId } } diff --git a/src/main/scala/app/PullRequestsController.scala b/src/main/scala/app/PullRequestsController.scala index 0cd143f..add3cda 100644 --- a/src/main/scala/app/PullRequestsController.scala +++ b/src/main/scala/app/PullRequestsController.scala @@ -1,6 +1,6 @@ package app -import util.{LockUtil, CollaboratorsAuthenticator, JGitUtil, ReferrerAuthenticator} +import util.{LockUtil, CollaboratorsAuthenticator, JGitUtil, ReferrerAuthenticator, Notifier} import util.Directory._ import util.Implicits._ import service._ @@ -303,8 +303,14 @@ .call } + // record activity recordPullRequestActivity(repository.owner, repository.name, loginUserName, issueId, form.title) + // notifications + Notifier().toNotify(repository, issueId, form.content.getOrElse("")){ + Notifier.msgPullRequest(s"${baseUrl}/${repository.owner}/${repository.name}/pull/${issueId}") + } + redirect(s"/${repository.owner}/${repository.name}/pull/${issueId}") }) diff --git a/src/main/scala/util/Notifier.scala b/src/main/scala/util/Notifier.scala index c8e6821..b9ed579 100644 --- a/src/main/scala/util/Notifier.scala +++ b/src/main/scala/util/Notifier.scala @@ -55,8 +55,8 @@ |View it on GitBucket """.stripMargin - def msgStatus(id: Int, url: String) = (content: String) => s""" - |${content} #${id} + def msgStatus(url: String) = (content: String) => s""" + |${content} #${url split('/') last} """.stripMargin }