diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2021-12-10 09:27:50 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-10 09:27:50 +0800 |
commit | 719bddcd76610a63dadc8555760072957a11cf30 (patch) | |
tree | 0df26092fba7e3e21444fe493e6b349473b6b0cb /models/repo_unit.go | |
parent | fb8166c6c6b652a0e6fa98681780a6a71090faf3 (diff) | |
download | gitea-719bddcd76610a63dadc8555760072957a11cf30.tar.gz gitea-719bddcd76610a63dadc8555760072957a11cf30.zip |
Move repository model into models/repo (#17933)
* Some refactors related repository model
* Move more methods out of repository
* Move repository into models/repo
* Fix test
* Fix test
* some improvements
* Remove unnecessary function
Diffstat (limited to 'models/repo_unit.go')
-rw-r--r-- | models/repo_unit.go | 229 |
1 files changed, 0 insertions, 229 deletions
diff --git a/models/repo_unit.go b/models/repo_unit.go deleted file mode 100644 index 4dac15366b..0000000000 --- a/models/repo_unit.go +++ /dev/null @@ -1,229 +0,0 @@ -// Copyright 2017 The Gitea 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 ( - "fmt" - - "code.gitea.io/gitea/models/db" - "code.gitea.io/gitea/models/login" - "code.gitea.io/gitea/models/unit" - "code.gitea.io/gitea/modules/json" - "code.gitea.io/gitea/modules/timeutil" - - "xorm.io/xorm" - "xorm.io/xorm/convert" -) - -// RepoUnit describes all units of a repository -type RepoUnit struct { - ID int64 - RepoID int64 `xorm:"INDEX(s)"` - Type unit.Type `xorm:"INDEX(s)"` - Config convert.Conversion `xorm:"TEXT"` - CreatedUnix timeutil.TimeStamp `xorm:"INDEX CREATED"` -} - -func init() { - db.RegisterModel(new(RepoUnit)) -} - -// UnitConfig describes common unit config -type UnitConfig struct{} - -// FromDB fills up a UnitConfig from serialized format. -func (cfg *UnitConfig) FromDB(bs []byte) error { - return JSONUnmarshalHandleDoubleEncode(bs, &cfg) -} - -// ToDB exports a UnitConfig to a serialized format. -func (cfg *UnitConfig) ToDB() ([]byte, error) { - return json.Marshal(cfg) -} - -// ExternalWikiConfig describes external wiki config -type ExternalWikiConfig struct { - ExternalWikiURL string -} - -// FromDB fills up a ExternalWikiConfig from serialized format. -func (cfg *ExternalWikiConfig) FromDB(bs []byte) error { - return JSONUnmarshalHandleDoubleEncode(bs, &cfg) -} - -// ToDB exports a ExternalWikiConfig to a serialized format. -func (cfg *ExternalWikiConfig) ToDB() ([]byte, error) { - return json.Marshal(cfg) -} - -// ExternalTrackerConfig describes external tracker config -type ExternalTrackerConfig struct { - ExternalTrackerURL string - ExternalTrackerFormat string - ExternalTrackerStyle string -} - -// FromDB fills up a ExternalTrackerConfig from serialized format. -func (cfg *ExternalTrackerConfig) FromDB(bs []byte) error { - return JSONUnmarshalHandleDoubleEncode(bs, &cfg) -} - -// ToDB exports a ExternalTrackerConfig to a serialized format. -func (cfg *ExternalTrackerConfig) ToDB() ([]byte, error) { - return json.Marshal(cfg) -} - -// IssuesConfig describes issues config -type IssuesConfig struct { - EnableTimetracker bool - AllowOnlyContributorsToTrackTime bool - EnableDependencies bool -} - -// FromDB fills up a IssuesConfig from serialized format. -func (cfg *IssuesConfig) FromDB(bs []byte) error { - return JSONUnmarshalHandleDoubleEncode(bs, &cfg) -} - -// ToDB exports a IssuesConfig to a serialized format. -func (cfg *IssuesConfig) ToDB() ([]byte, error) { - return json.Marshal(cfg) -} - -// PullRequestsConfig describes pull requests config -type PullRequestsConfig struct { - IgnoreWhitespaceConflicts bool - AllowMerge bool - AllowRebase bool - AllowRebaseMerge bool - AllowSquash bool - AllowManualMerge bool - AutodetectManualMerge bool - DefaultDeleteBranchAfterMerge bool - DefaultMergeStyle MergeStyle -} - -// FromDB fills up a PullRequestsConfig from serialized format. -func (cfg *PullRequestsConfig) FromDB(bs []byte) error { - return JSONUnmarshalHandleDoubleEncode(bs, &cfg) -} - -// ToDB exports a PullRequestsConfig to a serialized format. -func (cfg *PullRequestsConfig) ToDB() ([]byte, error) { - return json.Marshal(cfg) -} - -// IsMergeStyleAllowed returns if merge style is allowed -func (cfg *PullRequestsConfig) IsMergeStyleAllowed(mergeStyle MergeStyle) bool { - return mergeStyle == MergeStyleMerge && cfg.AllowMerge || - mergeStyle == MergeStyleRebase && cfg.AllowRebase || - mergeStyle == MergeStyleRebaseMerge && cfg.AllowRebaseMerge || - mergeStyle == MergeStyleSquash && cfg.AllowSquash || - mergeStyle == MergeStyleManuallyMerged && cfg.AllowManualMerge -} - -// GetDefaultMergeStyle returns the default merge style for this pull request -func (cfg *PullRequestsConfig) GetDefaultMergeStyle() MergeStyle { - if len(cfg.DefaultMergeStyle) != 0 { - return cfg.DefaultMergeStyle - } - - return MergeStyleMerge -} - -// AllowedMergeStyleCount returns the total count of allowed merge styles for the PullRequestsConfig -func (cfg *PullRequestsConfig) AllowedMergeStyleCount() int { - count := 0 - if cfg.AllowMerge { - count++ - } - if cfg.AllowRebase { - count++ - } - if cfg.AllowRebaseMerge { - count++ - } - if cfg.AllowSquash { - count++ - } - return count -} - -// BeforeSet is invoked from XORM before setting the value of a field of this object. -func (r *RepoUnit) BeforeSet(colName string, val xorm.Cell) { - switch colName { - case "type": - switch unit.Type(login.Cell2Int64(val)) { - case unit.TypeCode, unit.TypeReleases, unit.TypeWiki, unit.TypeProjects: - r.Config = new(UnitConfig) - case unit.TypeExternalWiki: - r.Config = new(ExternalWikiConfig) - case unit.TypeExternalTracker: - r.Config = new(ExternalTrackerConfig) - case unit.TypePullRequests: - r.Config = new(PullRequestsConfig) - case unit.TypeIssues: - r.Config = new(IssuesConfig) - default: - panic(fmt.Sprintf("unrecognized repo unit type: %v", *val)) - } - } -} - -// Unit returns Unit -func (r *RepoUnit) Unit() unit.Unit { - return unit.Units[r.Type] -} - -// CodeConfig returns config for unit.TypeCode -func (r *RepoUnit) CodeConfig() *UnitConfig { - return r.Config.(*UnitConfig) -} - -// PullRequestsConfig returns config for unit.TypePullRequests -func (r *RepoUnit) PullRequestsConfig() *PullRequestsConfig { - return r.Config.(*PullRequestsConfig) -} - -// ReleasesConfig returns config for unit.TypeReleases -func (r *RepoUnit) ReleasesConfig() *UnitConfig { - return r.Config.(*UnitConfig) -} - -// ExternalWikiConfig returns config for unit.TypeExternalWiki -func (r *RepoUnit) ExternalWikiConfig() *ExternalWikiConfig { - return r.Config.(*ExternalWikiConfig) -} - -// IssuesConfig returns config for unit.TypeIssues -func (r *RepoUnit) IssuesConfig() *IssuesConfig { - return r.Config.(*IssuesConfig) -} - -// ExternalTrackerConfig returns config for unit.TypeExternalTracker -func (r *RepoUnit) ExternalTrackerConfig() *ExternalTrackerConfig { - return r.Config.(*ExternalTrackerConfig) -} - -func getUnitsByRepoID(e db.Engine, repoID int64) (units []*RepoUnit, err error) { - var tmpUnits []*RepoUnit - if err := e.Where("repo_id = ?", repoID).Find(&tmpUnits); err != nil { - return nil, err - } - - for _, u := range tmpUnits { - if !u.Type.UnitGlobalDisabled() { - units = append(units, u) - } - } - - return units, nil -} - -// UpdateRepoUnit updates the provided repo unit -func UpdateRepoUnit(unit *RepoUnit) error { - _, err := db.GetEngine(db.DefaultContext).ID(unit.ID).Update(unit) - return err -} |