first step to remove global database.db

This commit is contained in:
Alex
2025-03-11 20:45:49 +01:00
parent ca441d51e7
commit 294ad76e4b
3 changed files with 22 additions and 24 deletions

View File

@@ -15,11 +15,11 @@ import (
var DB *gorm.DB
func Open(dbPath string, adminMail string) error {
func Open(dbPath string, adminMail string) (*gorm.DB, error) {
db, err := gorm.Open(sqlite.Open(dbPath), &gorm.Config{})
if err != nil {
return err
return nil, err
}
if err := db.AutoMigrate(
&models.User{},
@@ -31,12 +31,11 @@ func Open(dbPath string, adminMail string) error {
&models.Category{},
&models.BankAccount{}); err != nil {
logger.Error.Fatalf("Couldn't create database: %v", err)
return err
return nil, err
}
DB = db
logger.Info.Print("Opened DB")
DB = db
var categoriesCount int64
db.Model(&models.Category{}).Count(&categoriesCount)
if categoriesCount == 0 {
@@ -44,7 +43,7 @@ func Open(dbPath string, adminMail string) error {
for _, model := range categories {
result := db.Create(&model)
if result.Error != nil {
return result.Error
return nil, result.Error
}
}
}
@@ -62,7 +61,7 @@ func Open(dbPath string, adminMail string) error {
if exists == 0 {
result := db.Create(&model)
if result.Error != nil {
return result.Error
return nil, result.Error
}
}
}
@@ -72,20 +71,20 @@ func Open(dbPath string, adminMail string) error {
if userCount == 0 {
var createdModel models.SubscriptionModel
if err := db.First(&createdModel).Error; err != nil {
return err
return nil, err
}
admin, err := createAdmin(adminMail, createdModel.ID)
if err != nil {
return err
return nil, err
}
result := db.Session(&gorm.Session{FullSaveAssociations: true}).Create(&admin)
if result.Error != nil {
return result.Error
return nil, result.Error
}
}
return nil
return db, nil
}
func createSubscriptionModels() []models.SubscriptionModel {
@@ -167,11 +166,11 @@ func createAdmin(userMail string, subscriptionModelID uint) (*models.User, error
//"DE49700500000008447644", //fake
}
func Close() error {
func Close(db *gorm.DB) error {
logger.Info.Print("Closing DB")
db, err := DB.DB()
database, err := db.DB()
if err != nil {
return err
}
return db.Close()
return database.Close()
}

View File

@@ -20,13 +20,14 @@ import (
"GoMembership/pkg/logger"
"github.com/gin-gonic/gin"
"gorm.io/gorm"
)
var shutdownChannel = make(chan struct{})
var srv *http.Server
// Run initializes the server configuration, sets up services and controllers, and starts the HTTP server.
func Run() {
func Run(db *gorm.DB) {
emailService := services.NewEmailService(config.SMTP.Host, config.SMTP.Port, config.SMTP.User, config.SMTP.Password)
var consentRepo repositories.ConsentRepositoryInterface = &repositories.ConsentRepository{}
@@ -41,13 +42,11 @@ func Run() {
var licenceRepo repositories.LicenceInterface = &repositories.LicenceRepository{}
licenceService := &services.LicenceService{Repo: licenceRepo}
var userRepo repositories.UserRepositoryInterface = &repositories.UserRepository{}
userService := &services.UserService{Repo: userRepo, Licences: licenceRepo}
userService := &services.UserService{DB: db, Licences: licenceRepo}
userController := &controllers.UserController{Service: userService, EmailService: emailService, ConsentService: consentService, LicenceService: licenceService, BankAccountService: bankAccountService, MembershipService: membershipService}
membershipController := &controllers.MembershipController{Service: *membershipService, UserController: userController}
licenceController := &controllers.LicenceController{Service: *licenceService}
membershipController := &controllers.MembershipController{Service: membershipService, UserService: userService}
licenceController := &controllers.LicenceController{Service: licenceService}
contactController := &controllers.ContactController{EmailService: emailService}
router := gin.Default()
@@ -65,7 +64,7 @@ func Run() {
router.Use(middlewares.RateLimitMiddleware(limiter))
routes.RegisterRoutes(router, userController, membershipController, contactController, licenceController)
validation.SetupValidators()
validation.SetupValidators(db)
logger.Info.Println("Starting server on :8080")
srv = &http.Server{