This commit is contained in:
valitovgaziz
2024-08-05 09:16:04 +05:00
parent 2669e0be51
commit 87de968e7f
4 changed files with 29 additions and 5 deletions
+3
View File
@@ -2,9 +2,12 @@ package main
import ( import (
"api/src/initializers" "api/src/initializers"
"log/slog"
) )
func main() { func main() {
slog.Info("Start")
initializers.InitChiRouting() initializers.InitChiRouting()
initializers.InitDBconnection() initializers.InitDBconnection()
slog.Info("End")
} }
+25 -5
View File
@@ -10,6 +10,7 @@ import (
"github.com/ilyakaznacheev/cleanenv" "github.com/ilyakaznacheev/cleanenv"
"gorm.io/driver/postgres" "gorm.io/driver/postgres"
"gorm.io/gorm" "gorm.io/gorm"
"gorm.io/gorm/logger"
"net/http" "net/http"
@@ -20,6 +21,7 @@ import (
var cfg *configs.PSQLConfig var cfg *configs.PSQLConfig
func InitDBconnection() { func InitDBconnection() {
slog.Info("Init DB connection")
cleanenv.ReadEnv(&cfg) cleanenv.ReadEnv(&cfg)
dsn := fmt.Sprintf( dsn := fmt.Sprintf(
"host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Yekaterinburg", "host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Yekaterinburg",
@@ -29,21 +31,39 @@ func InitDBconnection() {
cfg.Db_name, cfg.Db_name,
cfg.Db_port, cfg.Db_port,
) )
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{}) db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{
Logger: logger.Default.LogMode(logger.Info),
})
if err != nil { if err != nil {
slog.Error("failed to connect database", "error", err) slog.Error("failed to connect database", "error", err)
os.Exit(2) os.Exit(2)
} }
psql.PSQL_GORM_DB = db psql.PSQL_GORM_DB = db
sql, err := db.DB()
if err != nil {
slog.Error("failed to get database", "error", err)
os.Exit(2)
}
err = sql.Ping()
if err != nil {
slog.Error("failed to ping database", "error", err)
os.Exit(2)
}
slog.Info("connected to database") slog.Info("connected to database")
db.Logger = logger.Default.LogMode(logger.Info)
} }
func InitChiRouting() { func InitChiRouting() {
slog.Info("Init routing")
r := chi.NewRouter() r := chi.NewRouter()
r.Use(middleware.Logger) r.Use(middleware.Logger)
r.Get("/", func(w http.ResponseWriter, r *http.Request) { r.Get("/", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("welcome developer")) w.Write([]byte("welcome developer! Cool. Are you debugging?"))
}) })
http.ListenAndServe(":8000", r) err := http.ListenAndServe(":"+os.Getenv("SERVER_PORT"), r)
if err != nil {
slog.Error("failed to start server", "error", err)
os.Exit(2)
}
slog.Info("Server start on PORT: " + os.Getenv("SERVER_PORT"))
} }
View File
+1
View File
@@ -26,6 +26,7 @@ services:
- .:/usr/src/app - .:/usr/src/app
depends_on: depends_on:
- db - db
command: ./bin/api.exe
volumes: volumes:
postgres-db: postgres-db: