package main import ( "log" "net/http" "personalwebsite/routewde" "personalwebsite/websiteapp" "personalwebsite/websiteapp/finder" "personalwebsite/websiteapp/personalprops" "github.com/gin-gonic/gin" ) // func main() { // router := gin.Default() // router.LoadHTMLGlob("templates/**/*") // router.GET("/posts/index", func(c *gin.Context) { // c.HTML(http.StatusOK, "posts/index.tmpl", gin.H{ // "title": "Posts", // }) // }) // router.GET("/users/index", func(c *gin.Context) { // c.HTML(http.StatusOK, "users/index.tmpl", gin.H{ // "title": "Users", // }) // }) // router.Run(":8080") // } func main() { // hostUrl := "http://localhost:8080/" router := gin.New() router.LoadHTMLGlob("templates/**/*") router.Static("/res", "resources") router.GET("/", func(ctx *gin.Context) { ctx.HTML(http.StatusOK, "index.tmpl", gin.H{}) }) persPropsApp := personalprops.NewPersPropsApp() finderApp := finder.FinerApplication{} appsStorage := websiteapp.ApplicationsStorage{ Apps: map[string]websiteapp.WebDEApplication{}, } appsStorage.Apps["personal-properties"] = &persPropsApp appsStorage.Apps["finder"] = &finderApp system := router.Group("system") { wde := system.Group("wde") { routewde.Route(wde) } apps := system.Group("applications") { apps.GET("/:appid/:method", func(ctx *gin.Context) { appId := ctx.Param("appid") method := ctx.Param("method") app, isExist := appsStorage.Apps[appId] if !isExist { ctx.Status(http.StatusNoContent) return } switch method { case "getmanifest": ctx.JSON(http.StatusOK, app.GetManifest()) case "app.js": ctx.File("resources/sys/" + appId + "/" + appId + ".js") case "app.css": ctx.File("resources/sys/" + appId + "/" + appId + ".css") default: ctx.Status(http.StatusBadRequest) } }) } websiteapp.Route(apps.Group("/storage"), &appsStorage) // personalpropsroute.Route(apps.Group("/personalproperties")) } app := router.Group("application") { app.GET("test", func(ctx *gin.Context) { ctx.Status(http.StatusOK) }) persPropApp := app.Group("personal-properties") { persPropApp.GET("render", func(ctx *gin.Context) { ctx.HTML(http.StatusOK, "personal-properties/app.tmpl", persPropsApp.Render()) }) } } router.GET("/test", func(ctx *gin.Context) { ctx.HTML(200, "kek/kek.tmpl", gin.H{}) }) // router.GET("/room/:roomid", roomGET) // router.POST("/room-post/:roomid", roomPOST) // router.GET("/stream/:roomid", streamRoom) // port := os.Getenv("PORT") // if port == "" { // port = "8080" // } if err := router.Run(":8080"); err != nil { log.Panicf("error: %s", err) } } func index(c *gin.Context) { c.HTML(http.StatusOK, "base.html", nil) }