FuXiaoHei il y a 11 ans
Parent
commit
f2ce1eebbb
1 fichiers modifiés avec 56 ajouts et 0 suppressions
  1. 56 0
      models/action.go

+ 56 - 0
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
+}