Files
zineshop/main.go
2025-01-04 20:21:05 +01:00

74 lines
1.6 KiB
Go

package main
import(
"os"
"io"
"net/http"
"gorm.io/gorm"
"gorm.io/driver/sqlite"
"github.com/gin-gonic/gin"
"example.com/gin/test/services"
"example.com/gin/test/controllers"
"example.com/gin/test/models"
//"example.com/gin/test/middlewares"
)
var(
videoService services.VideoService = services.New()
videoController controllers.VideoController = controllers.New(videoService)
roomController controllers.RoomController
)
func setupLogOutput() {
f, _ := os.Create("gin.log")
gin.DefaultWriter = io.MultiWriter(f, os.Stdout)
}
func SetReply(ctx *gin.Context, err error, message any) {
if err != nil {
ctx.JSON(http.StatusBadRequest, gin.H{ "error": err.Error() })
} else {
ctx.JSON(http.StatusOK, message)
}
}
func main() {
db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
if err != nil {
panic("failed to connect to database")
}
err = db.AutoMigrate(&models.Room{}, &models.User{}, &models.Booking{})
if err != nil {
panic("failed to migrate database")
}
roomController = controllers.NewRoomController(db)
server := gin.New()
server.Use(gin.Recovery())
server.Use(gin.Logger())
server.Static("/static", "./static")
server.LoadHTMLGlob("views/*.html")
apiRoutes := server.Group("/api")
//apiRoutes.Use(middlewares.BasicAuth())
{
apiRoutes.POST("/rooms", roomController.Create)
apiRoutes.GET("/rooms", roomController.GetAll)
apiRoutes.GET("/rooms/:id", roomController.GetById)
apiRoutes.PUT("/rooms/:id", roomController.Update)
apiRoutes.DELETE("/rooms/:id", roomController.Delete)
}
viewRoutes := server.Group("/")
{
viewRoutes.GET("/videos", videoController.ShowAll)
}
server.Run(":8080")
}