diff options
author | Unknown <joe2010xtmf@163.com> | 2014-03-13 01:01:22 -0400 |
---|---|---|
committer | Unknown <joe2010xtmf@163.com> | 2014-03-13 01:01:22 -0400 |
commit | 6a75b1f7b37dead013f271936c274ac9506d7d41 (patch) | |
tree | bf2c36cdd79df43b2b476fb3592980d093c9392a /models | |
parent | 9b845c11150102894a8bb453d86a335a7c2a64b8 (diff) | |
download | gitea-6a75b1f7b37dead013f271936c274ac9506d7d41.tar.gz gitea-6a75b1f7b37dead013f271936c274ac9506d7d41.zip |
Add create repo feeds
Diffstat (limited to 'models')
-rw-r--r-- | models/action.go | 56 | ||||
-rw-r--r-- | models/models.go | 2 | ||||
-rw-r--r-- | models/repo.go | 3 | ||||
-rw-r--r-- | models/user.go | 20 |
4 files changed, 59 insertions, 22 deletions
diff --git a/models/action.go b/models/action.go new file mode 100644 index 0000000000..cae093ecbe --- /dev/null +++ b/models/action.go @@ -0,0 +1,56 @@ +// Copyright 2014 The Gogs Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package models + +import ( + "encoding/json" + "time" +) + +// Operation types of user action. +const ( + OP_CREATE_REPO = iota + 1 + OP_DELETE_REPO + OP_STAR_REPO + OP_FOLLOW_REPO + OP_COMMIT_REPO + OP_PULL_REQUEST +) + +// An Action represents +type Action struct { + Id int64 + UserId int64 + OpType int + RepoId int64 + Content string + Created time.Time `xorm:"created"` +} + +type NewRepoContent struct { + UserName string + RepoName string +} + +// NewRepoAction inserts action for create repository. +func NewRepoAction(user *User, repo *Repository) error { + content, err := json.Marshal(&NewRepoContent{user.Name, repo.Name}) + if err != nil { + return err + } + _, err = orm.InsertOne(&Action{ + UserId: user.Id, + OpType: OP_CREATE_REPO, + RepoId: repo.Id, + Content: string(content), + }) + return err +} + +func GetFeeds(userid, offset int64) ([]Action, error) { + actions := make([]Action, 0, 20) + err := orm.Limit(20, int(offset)).Desc("id").Where("user_id=?", userid).Find(&actions) + return actions, err +} diff --git a/models/models.go b/models/models.go index 413775f58b..7c28dc5422 100644 --- a/models/models.go +++ b/models/models.go @@ -92,7 +92,7 @@ func setEngine() { func init() { setEngine() - err := orm.Sync(new(User), new(PublicKey), new(Repository), new(Access)) + err := orm.Sync(new(User), new(PublicKey), new(Repository), new(Access), new(Action)) if err != nil { fmt.Printf("sync database struct error: %s\n", err) os.Exit(2) diff --git a/models/repo.go b/models/repo.go index c790dc90a6..6387090ed0 100644 --- a/models/repo.go +++ b/models/repo.go @@ -137,7 +137,8 @@ func CreateRepository(user *User, repoName, desc, repoLang, license string, priv } return nil, err } - return repo, nil + + return repo, NewRepoAction(user, repo) } // InitRepository initializes README and .gitignore if needed. diff --git a/models/user.go b/models/user.go index 8fa2e44e00..c59e4ae152 100644 --- a/models/user.go +++ b/models/user.go @@ -61,26 +61,6 @@ type Follow struct { Created time.Time `xorm:"created"` } -// Operation types of repository. -const ( - OP_CREATE_REPO = iota + 1 - OP_DELETE_REPO - OP_STAR_REPO - OP_FOLLOW_REPO - OP_COMMIT_REPO - OP_PULL_REQUEST -) - -// An Action represents -type Action struct { - Id int64 - UserId int64 - OpType int - RepoId int64 - Content string - Created time.Time `xorm:"created"` -} - var ( ErrUserOwnRepos = errors.New("User still have ownership of repositories") ErrUserAlreadyExist = errors.New("User already exist") |