initial commit

This commit is contained in:
2025-12-07 11:32:45 +01:00
commit c3daed67ac
35 changed files with 1315 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
package mysql_utils
import (
"database/sql"
"github.com/DATA-DOG/go-sqlmock"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
type DBMockSuite struct {
DB *gorm.DB
Mock sqlmock.Sqlmock
}
func NewDBMockSuite() *DBMockSuite {
var (
db *sql.DB
gormdb *gorm.DB
mock sqlmock.Sqlmock
err error
)
db, mock, err = sqlmock.New()
if err != nil {
panic("SQL Mock error")
}
mock.ExpectQuery("SELECT VERSION()").WithArgs().WillReturnRows(sqlmock.NewRows([]string{"exists"}).AddRow(true))
gormdb, err = gorm.Open(mysql.New(mysql.Config{
DSN: "sqlmock_db_0",
DriverName: "mysql",
Conn: db,
}), &gorm.Config{})
if err != nil {
panic("GORM open error")
}
// gormdb.AutoMigrate()
return &DBMockSuite{
DB: gormdb,
Mock: mock,
}
}
+38
View File
@@ -0,0 +1,38 @@
package mysql_utils
import (
"fmt"
"os"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
type DbConnectData struct {
User string
Password string
Host string
Port string
Database string
}
func getDbConnectData() DbConnectData {
return DbConnectData{
User: os.Getenv("DB_USER"),
Password: os.Getenv("DB_PASSWORD"),
Host: os.Getenv("DB_HOST"),
Port: os.Getenv("DB_PORT"),
Database: os.Getenv("DB_NAME"),
}
}
func Init() *gorm.DB {
c := getDbConnectData()
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", c.User, c.Password, c.Host, c.Port, c.Database)
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic(err)
}
return db
}