diff --git a/cmd/main-api/config.yml-example b/cmd/main-api/config.yml-example index 19893fd7..dfe3cb7e 100644 --- a/cmd/main-api/config.yml-example +++ b/cmd/main-api/config.yml-example @@ -15,6 +15,12 @@ dbCfg: maxIdleConns: 5 maxIdleTime: 100 +ssDbCfg: + dsn: + maxOpenConns: 5 + maxIdleConns: 5 + maxIdleTime: 100 + loggerCfg: hideTime: hideLevel: diff --git a/internal/infra/ss-db/ss-db.go b/internal/infra/ss-db/ss-db.go new file mode 100644 index 00000000..3c239540 --- /dev/null +++ b/internal/infra/ss-db/ss-db.go @@ -0,0 +1,36 @@ +package ssdb + +import ( + "log" + + a "github.com/karincake/apem" + lo "github.com/karincake/apem/loggero" + "gorm.io/driver/postgres" + "gorm.io/gorm" + "gorm.io/gorm/schema" +) + +func Init() { + SetConfig() + NewInstance() +} + +func SetConfig() { + a.ParseSingleCfg(&Cfg) +} + +func NewInstance() { + // create database connection + db, err := gorm.Open(postgres.Open(Cfg.Dsn), &gorm.Config{ + NamingStrategy: schema.NamingStrategy{ + SingularTable: true, + NoLowerCase: true, + }, + }) + if err != nil { + log.Fatal(err) + } + + SSDb = db + lo.I.Println("Instantiation for satu-sehat database-connetion using db-gorm-pg, status: DONE!!") +} diff --git a/internal/infra/ss-db/tycovar.go b/internal/infra/ss-db/tycovar.go new file mode 100644 index 00000000..ff084508 --- /dev/null +++ b/internal/infra/ss-db/tycovar.go @@ -0,0 +1,13 @@ +package ssdb + +import "gorm.io/gorm" + +type SsDbCfg struct { + Dsn string + MaxOpenConns int `yaml:"maxOpenConns"` + MaxIdleConns int `yaml:"maxIdleConns"` + MaxIdleTime int `yaml:"maxIdleTime"` +} + +var Cfg SsDbCfg = SsDbCfg{} +var SSDb *gorm.DB diff --git a/internal/interface/main-handler/main-handler.go b/internal/interface/main-handler/main-handler.go index 56c5b656..ef390c43 100644 --- a/internal/interface/main-handler/main-handler.go +++ b/internal/interface/main-handler/main-handler.go @@ -8,6 +8,7 @@ import ( /******************** infra ********************/ gs "simrs-vx/internal/infra/gorm-setting" + ssdb "simrs-vx/internal/infra/ss-db" /******************** pkg ********************/ handlerlogger "simrs-vx/pkg/middleware/handler-logger" @@ -20,6 +21,7 @@ import ( func SetRoutes() http.Handler { ///// a.RegisterExtCall(gs.Adjust) + a.RegisterExtCall(ssdb.Init) r := http.NewServeMux()