github.com/covergates/covergates@v0.2.2-0.20201009050117-42ef8a19fb95/models/models.go (about)

     1  package models
     2  
     3  import (
     4  	"github.com/covergates/covergates/core"
     5  	"gorm.io/gorm"
     6  )
     7  
     8  var (
     9  	tables []interface{}
    10  )
    11  
    12  type databaseService struct {
    13  	db *gorm.DB
    14  }
    15  
    16  // NewDatabaseService with GORM
    17  func NewDatabaseService(db *gorm.DB) core.DatabaseService {
    18  	return &databaseService{
    19  		db: db,
    20  	}
    21  }
    22  
    23  func (store *databaseService) Session() *gorm.DB {
    24  	return store.db.Session(&gorm.Session{})
    25  }
    26  
    27  func (store *databaseService) Migrate() error {
    28  	return migrate(store.db)
    29  }
    30  
    31  func init() {
    32  	tables = append(tables,
    33  		&Report{},
    34  		&ReportComment{},
    35  		&Reference{},
    36  		&Coverage{},
    37  		&User{},
    38  		&Repo{},
    39  		&RepoSetting{},
    40  		&RepoHook{},
    41  		&OAuthToken{},
    42  	)
    43  }
    44  
    45  func migrate(db *gorm.DB) error {
    46  	return db.AutoMigrate(tables...)
    47  }