summaryrefslogtreecommitdiffstats
path: root/models/repo_unit.go
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2021-12-10 09:27:50 +0800
committerGitHub <noreply@github.com>2021-12-10 09:27:50 +0800
commit719bddcd76610a63dadc8555760072957a11cf30 (patch)
tree0df26092fba7e3e21444fe493e6b349473b6b0cb /models/repo_unit.go
parentfb8166c6c6b652a0e6fa98681780a6a71090faf3 (diff)
downloadgitea-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.go229
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
-}