]> source.dussan.org Git - gitea.git/commitdiff
merge
authorFuXiaoHei <fuxiaohei@hexiaz.com>
Thu, 13 Mar 2014 05:16:14 +0000 (13:16 +0800)
committerFuXiaoHei <fuxiaohei@hexiaz.com>
Thu, 13 Mar 2014 05:16:14 +0000 (13:16 +0800)
models/action.go [new file with mode: 0644]

diff --git a/models/action.go b/models/action.go
new file mode 100644 (file)
index 0000000..cae093e
--- /dev/null
@@ -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
+}