From 48b2425c1d49560094b2935e6451d55cd5aa1f1a Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 16 Mar 2014 11:30:35 -0400 Subject: [PATCH] Push feed --- models/action.go | 4 ++++ modules/base/tool.go | 20 ++++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/models/action.go b/models/action.go index ceee9997a..978e805c8 100644 --- a/models/action.go +++ b/models/action.go @@ -44,6 +44,10 @@ func (a Action) GetRepoName() string { return a.RepoName } +func (a Action) GetContent() string { + return a.Content +} + // CommitRepoAction records action for commit repository. func CommitRepoAction(userId int64, userName string, repoId int64, repoName string, commits [][]string) error { diff --git a/modules/base/tool.go b/modules/base/tool.go index 3f8b8ffa8..5746cc8fb 100644 --- a/modules/base/tool.go +++ b/modules/base/tool.go @@ -7,6 +7,7 @@ package base import ( "crypto/md5" "encoding/hex" + "encoding/json" "fmt" "math" "strings" @@ -235,6 +236,7 @@ type Actioner interface { GetOpType() int GetActUserName() string GetRepoName() string + GetContent() string } // ActionIcon accepts a int that represents action operation type @@ -243,13 +245,19 @@ func ActionIcon(opType int) string { switch opType { case 1: // Create repository. return "plus-circle" + case 5: // Commit repository. + return "arrow-circle-o-right" default: return "invalid type" } } const ( - CreateRepoTpl = `%s created repository %s` + TPL_CREATE_REPO = `%s created repository %s` + TPL_COMMIT_REPO = `%s pushed to %s at %s/%s +` ) // ActionDesc accepts int that represents action operation type @@ -257,9 +265,17 @@ const ( func ActionDesc(act Actioner) string { actUserName := act.GetActUserName() repoName := act.GetRepoName() + content := act.GetContent() switch act.GetOpType() { case 1: // Create repository. - return fmt.Sprintf(CreateRepoTpl, actUserName, actUserName, actUserName, repoName, repoName) + return fmt.Sprintf(TPL_CREATE_REPO, actUserName, actUserName, actUserName, repoName, repoName) + case 5: // Commit repository. + var commits [][]string + if err := json.Unmarshal([]byte(content), &commits); err != nil { + return err.Error() + } + return fmt.Sprintf(TPL_COMMIT_REPO, actUserName, actUserName, actUserName, repoName, "master", "master", actUserName, repoName, actUserName, repoName, + actUserName, repoName, commits[0][0], commits[0][0][:7], commits[0][1]) default: return "invalid type" }