Skip to content

Commit eeefd0f

Browse files
committed
Update
1 parent f1d9ba1 commit eeefd0f

File tree

6 files changed

+84
-52
lines changed

6 files changed

+84
-52
lines changed

models/migrations/v1_24/v314.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,6 @@ import (
99
"xorm.io/xorm"
1010
)
1111

12-
type Star struct {
13-
StarListID int64 `xorm:"UNIQUE(s)"`
14-
}
15-
1612
type StarList struct {
1713
ID int64 `xorm:"pk autoincr"`
1814
UID int64 `xorm:"INDEX"`
@@ -23,6 +19,12 @@ type StarList struct {
2319
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
2420
}
2521

22+
type StarListRepo struct {
23+
UID int64 `xorm:"UNIQUE(s)"`
24+
StarListID int64 `xorm:"UNIQUE(s)"`
25+
RepoID int64 `xorm:"UNIQUE(s)"`
26+
}
27+
2628
// TableName return database table name for xorm
2729
func (StarList) TableName() string {
2830
return "star_list"
@@ -34,11 +36,11 @@ func AddStarList(x *xorm.Engine) error {
3436
if err := sess.Begin(); err != nil {
3537
return err
3638
}
37-
err := sess.Sync(new(Star))
39+
err := sess.Sync(new(StarList))
3840
if err != nil {
3941
return err
4042
}
41-
err = sess.Sync(new(StarList))
43+
err = sess.Sync(new(StarListRepo))
4244
if err != nil {
4345
return err
4446
}

models/repo/issue.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,6 @@ import (
1111
"code.gitea.io/gitea/modules/setting"
1212
)
1313

14-
// ___________.__ ___________ __
15-
// \__ ___/|__| _____ ___\__ ___/___________ ____ | | __ ___________
16-
// | | | |/ \_/ __ \| | \_ __ \__ \ _/ ___\| |/ // __ \_ __ \
17-
// | | | | Y Y \ ___/| | | | \// __ \\ \___| <\ ___/| | \/
18-
// |____| |__|__|_| /\___ >____| |__| (____ /\___ >__|_ \\___ >__|
19-
// \/ \/ \/ \/ \/ \/
20-
2114
// CanEnableTimetracker returns true when the server admin enabled time tracking
2215
// This overrules IsTimetrackerEnabled
2316
func (repo *Repository) CanEnableTimetracker() bool {

models/repo/repo.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -732,13 +732,6 @@ func (repo *Repository) MustNotBeArchived() error {
732732
return nil
733733
}
734734

735-
// __________ .__ __
736-
// \______ \ ____ ______ ____ _____|__|/ |_ ___________ ___.__.
737-
// | _// __ \\____ \ / _ \/ ___/ \ __\/ _ \_ __ < | |
738-
// | | \ ___/| |_> > <_> )___ \| || | ( <_> ) | \/\___ |
739-
// |____|_ /\___ > __/ \____/____ >__||__| \____/|__| / ____|
740-
// \/ \/|__| \/ \/
741-
742735
// ErrRepoNotExist represents a "RepoNotExist" kind of error.
743736
type ErrRepoNotExist struct {
744737
ID int64

models/repo/star.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ type Star struct {
1616
ID int64 `xorm:"pk autoincr"`
1717
UID int64 `xorm:"UNIQUE(s)"`
1818
RepoID int64 `xorm:"UNIQUE(s)"`
19-
StarListID int64 `xorm:"UNIQUE(s)"`
2019
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
2120
}
2221

models/repo/star_list.go

Lines changed: 22 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,13 @@ import (
1010
"code.gitea.io/gitea/modules/timeutil"
1111
)
1212

13-
// StarList ...
1413
type StarList struct {
1514
ID int64 `xorm:"pk autoincr"`
1615
UID int64 `xorm:"INDEX"`
1716
Name string
1817
Desc string
1918

20-
StarIDs []int64 `xorm:"-"`
21-
Repos []Repository `xorm:"-"`
19+
Repos []Repository `xorm:"-"`
2220

2321
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
2422
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
@@ -28,40 +26,33 @@ func init() {
2826
db.RegisterModel(new(StarList))
2927
}
3028

31-
func (list *StarList) GetCount() int64 {
32-
var star Star
33-
count, err := db.GetEngine(context.Background()).Where("star_list_id = ?", list.ID).Count(star)
34-
if err != nil {
35-
return 0
36-
}
37-
return count
29+
func InsertStarList(ctx context.Context, starList *StarList) error {
30+
_, err := db.GetEngine(ctx).Insert(starList)
31+
return err
3832
}
3933

40-
func (list *StarList) LoadStars() {
41-
var star []Star
42-
err := db.GetEngine(context.Background()).Where("star_list_id = ?", list.ID).Find(&star)
43-
if err != nil {
44-
return
45-
}
46-
for _, star := range star {
47-
list.StarIDs = append(list.StarIDs, star.ID)
48-
}
34+
func UpdateStarList(ctx context.Context, starList *StarList) error {
35+
_, err := db.GetEngine(ctx).Where("id = ?", starList.ID).AllCols().Update(starList)
36+
return err
4937
}
5038

51-
func GetStarListByUID(ctx context.Context, uid int64) ([]*StarList, error) {
52-
var list []*StarList
53-
err := db.GetEngine(ctx).Where("uid = ?", uid).Find(&list)
54-
if err != nil {
55-
return nil, err
56-
}
57-
return list, nil
39+
func DeleteStarListByID(ctx context.Context, id int64) error {
40+
_, err := db.GetEngine(ctx).Delete(&StarList{ID: id})
41+
return err
5842
}
5943

60-
func GetReposByStarListID(ctx context.Context, starListID int64) ([]*Repository, error) {
61-
repos := make([]*Repository, 0, 100)
62-
err := db.GetEngine(ctx).Where("star_list_id = ?", starListID).Find(&repos)
63-
if err != nil {
44+
func GetStarListByID(ctx context.Context, id int64) (*StarList, error) {
45+
starList := new(StarList)
46+
if has, err := db.GetEngine(ctx).Where("id = ?", id).Get(starList); err != nil {
6447
return nil, err
48+
} else if !has {
49+
return nil, nil
6550
}
66-
return repos, nil
51+
return starList, nil
52+
}
53+
54+
func GetStarListsForUser(ctx context.Context, id int64) ([]*StarList, error) {
55+
starLists := make([]*StarList, 0, 10)
56+
err := db.GetEngine(ctx).Where("uid = ?", id).Find(&starLists)
57+
return starLists, err
6758
}

models/repo/star_list_repo.go

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package repo
2+
3+
import (
4+
"context"
5+
6+
"code.gitea.io/gitea/models/db"
7+
)
8+
9+
type StarListRepo struct {
10+
UID int64 `xorm:"UNIQUE(s)"`
11+
StarListID int64 `xorm:"UNIQUE(s)"`
12+
RepoID int64 `xorm:"UNIQUE(s)"`
13+
}
14+
15+
func init() {
16+
db.RegisterModel(new(StarListRepo))
17+
}
18+
19+
func StarLists(ctx context.Context, uid, repoID int64, ids []int64) error {
20+
starListRepos := make([]*StarListRepo, 0, len(ids))
21+
for _, id := range ids {
22+
starListRepos = append(starListRepos, &StarListRepo{
23+
UID: uid,
24+
StarListID: id,
25+
RepoID: repoID,
26+
})
27+
}
28+
29+
ctx, committer, err := db.TxContext(ctx)
30+
if err != nil {
31+
return err
32+
}
33+
defer committer.Close()
34+
35+
_, err = db.GetEngine(ctx).Insert(&starListRepos)
36+
if err != nil {
37+
return err
38+
}
39+
40+
_, err = db.GetEngine(ctx).Where("uid = ? AND repo_id = ? AND star_list_id NOT IN (?)", uid, repoID, ids).Delete(new(StarListRepo))
41+
if err != nil {
42+
return err
43+
}
44+
45+
return committer.Commit()
46+
}
47+
48+
func UnStarLists(ctx context.Context, uid, repoID int64, ids []int64) error {
49+
_, err := db.GetEngine(ctx).Where("uid = ? AND repo_id = ? AND star_list_id NOT IN (?)", uid, repoID, ids).Delete(new(StarListRepo))
50+
if err != nil {
51+
return err
52+
}
53+
return nil
54+
}

0 commit comments

Comments
 (0)