diff options
author | FuXiaoHei <fuxiaohei@hexiaz.com> | 2014-03-13 13:16:14 +0800 |
---|---|---|
committer | FuXiaoHei <fuxiaohei@hexiaz.com> | 2014-03-13 13:16:14 +0800 |
commit | f2ce1eebbb281e978b1e3fa903a43aa94c11c387 (patch) | |
tree | 0f7d67aa78c161171b6961b66bc321d99316ae8f /models/action.go | |
parent | 37fae304d3d335d5e0320a2bd73f86d410b71b84 (diff) | |
download | gitea-f2ce1eebbb281e978b1e3fa903a43aa94c11c387.tar.gz gitea-f2ce1eebbb281e978b1e3fa903a43aa94c11c387.zip |
merge
Diffstat (limited to 'models/action.go')
-rw-r--r-- | models/action.go | 56 |
1 files changed, 56 insertions, 0 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 +} |