Abstract db handling into repositories
This commit is contained in:
32
main.go
32
main.go
@@ -6,20 +6,18 @@ import(
|
||||
"net/http"
|
||||
"fmt"
|
||||
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/driver/sqlite"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/joho/godotenv"
|
||||
|
||||
"example.com/gin/test/controllers"
|
||||
"example.com/gin/test/models"
|
||||
"example.com/gin/test/repositories"
|
||||
"example.com/gin/test/middlewares"
|
||||
)
|
||||
|
||||
var(
|
||||
roomController controllers.RoomController
|
||||
userController controllers.UserController
|
||||
autoValidator middlewares.AuthValidator
|
||||
roomController controllers.RoomController = controllers.NewRoomController()
|
||||
userController controllers.UserController = controllers.UserController{}
|
||||
authValidator middlewares.AuthValidator = middlewares.AuthValidator{}
|
||||
)
|
||||
|
||||
func LoadEnvVariables() {
|
||||
@@ -46,19 +44,8 @@ func SetReply(ctx *gin.Context, err error, message any) {
|
||||
func main() {
|
||||
LoadEnvVariables()
|
||||
|
||||
db, err := gorm.Open(sqlite.Open(os.Getenv("SQLITE_DB")), &gorm.Config{})
|
||||
if err != nil {
|
||||
panic("failed to connect to database")
|
||||
}
|
||||
repositories.InitRepositories()
|
||||
|
||||
err = db.AutoMigrate(&models.Room{}, &models.User{}, &models.Booking{})
|
||||
if err != nil {
|
||||
panic("failed to migrate database")
|
||||
}
|
||||
|
||||
roomController = controllers.NewRoomController(db)
|
||||
userController = controllers.NewUserController(db)
|
||||
authValidator := middlewares.AuthValidator{ DB: db, }
|
||||
|
||||
server := gin.New()
|
||||
server.Use(gin.Recovery())
|
||||
@@ -84,5 +71,14 @@ func main() {
|
||||
apiRoutes.GET("/users/validate", authValidator.OptionalAuth, userController.Validate)
|
||||
}
|
||||
|
||||
viewRoutes := server.Group("/")
|
||||
{
|
||||
viewRoutes.GET("/", userController.MainView)
|
||||
viewRoutes.GET("/login", userController.LoginView)
|
||||
viewRoutes.GET("/register", userController.RegisterView)
|
||||
viewRoutes.GET("/passwordreset", userController.ResetView)
|
||||
}
|
||||
|
||||
|
||||
server.Run(":"+os.Getenv("PORT"))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user