summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorUnknown <joe2010xtmf@163.com>2014-03-21 01:09:22 -0400
committerUnknown <joe2010xtmf@163.com>2014-03-21 01:09:22 -0400
commit369ddf76a8ae6916ab72f1fa26c81b44c456c6ea (patch)
tree3e26392ef3ff4569cc077432e507e848f907df8a /models
parent53a17bbd240e0dd3755b7a666792d69e358f3e00 (diff)
downloadgitea-369ddf76a8ae6916ab72f1fa26c81b44c456c6ea.tar.gz
gitea-369ddf76a8ae6916ab72f1fa26c81b44c456c6ea.zip
Batch fix
Diffstat (limited to 'models')
-rw-r--r--models/action.go4
-rw-r--r--models/models.go5
-rw-r--r--models/repo.go28
3 files changed, 34 insertions, 3 deletions
diff --git a/models/action.go b/models/action.go
index b3be093533..107d4b1057 100644
--- a/models/action.go
+++ b/models/action.go
@@ -64,6 +64,10 @@ func CommitRepoAction(userId int64, userName string,
watches = append(watches, Watch{UserId: userId})
for i := range watches {
+ if userId == watches[i].UserId && i > 0 {
+ continue // Do not add twice in case author watches his/her repository.
+ }
+
_, err = orm.InsertOne(&Action{
UserId: watches[i].UserId,
ActUserId: userId,
diff --git a/models/models.go b/models/models.go
index 214d1c767a..8df230975f 100644
--- a/models/models.go
+++ b/models/models.go
@@ -7,6 +7,7 @@ package models
import (
"fmt"
"os"
+ "path"
_ "github.com/go-sql-driver/mysql"
_ "github.com/lib/pq"
@@ -23,6 +24,7 @@ func setEngine() {
dbName := base.Cfg.MustValue("database", "NAME")
dbUser := base.Cfg.MustValue("database", "USER")
dbPwd := base.Cfg.MustValue("database", "PASSWD")
+ dbPath := base.Cfg.MustValue("database", "PATH", "data/gogs.db")
sslMode := base.Cfg.MustValue("database", "SSL_MODE")
var err error
@@ -33,6 +35,9 @@ func setEngine() {
case "postgres":
orm, err = xorm.NewEngine("postgres", fmt.Sprintf("user=%s password=%s dbname=%s sslmode=%s",
dbUser, dbPwd, dbName, sslMode))
+ case "sqlite3":
+ os.MkdirAll(path.Dir(dbPath), os.ModePerm)
+ orm, err = xorm.NewEngine("sqlite3", dbPath)
default:
fmt.Printf("Unknown database type: %s\n", dbType)
os.Exit(2)
diff --git a/models/repo.go b/models/repo.go
index f5ceaf7631..93f68ceddf 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -323,11 +323,33 @@ func initRepository(f string, user *User, repo *Repository, initReadme bool, rep
return nil
}
+// UserRepo reporesents a repository with user name.
+type UserRepo struct {
+ *Repository
+ UserName string
+}
+
// GetRepos returns given number of repository objects with offset.
-func GetRepos(num, offset int) ([]Repository, error) {
+func GetRepos(num, offset int) ([]UserRepo, error) {
repos := make([]Repository, 0, num)
- err := orm.Limit(num, offset).Asc("id").Find(&repos)
- return repos, err
+ if err := orm.Limit(num, offset).Asc("id").Find(&repos); err != nil {
+ return nil, err
+ }
+
+ urepos := make([]UserRepo, len(repos))
+ for i := range repos {
+ urepos[i].Repository = &repos[i]
+ u := new(User)
+ has, err := orm.Id(urepos[i].Repository.OwnerId).Get(u)
+ if err != nil {
+ return nil, err
+ } else if !has {
+ return nil, ErrUserNotExist
+ }
+ urepos[i].UserName = u.Name
+ }
+
+ return urepos, nil
}
func RepoPath(userName, repoName string) string {