mirror of
https://github.com/yanislav-igonin/micrach
synced 2025-04-20 03:40:33 +03:00
151 lines
3.5 KiB
Go
151 lines
3.5 KiB
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"micrach/build"
|
|
"micrach/config"
|
|
"micrach/db"
|
|
"micrach/repositories"
|
|
"micrach/templates"
|
|
"micrach/utils"
|
|
"strconv"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
"github.com/gofiber/template/html"
|
|
_ "github.com/joho/godotenv/autoload"
|
|
)
|
|
|
|
// import (
|
|
// "html/template"
|
|
// "log"
|
|
// "strconv"
|
|
// "time"
|
|
|
|
// "github.com/gin-gonic/gin"
|
|
// _ "github.com/joho/godotenv/autoload"
|
|
// limiter "github.com/ulule/limiter/v3"
|
|
// mgin "github.com/ulule/limiter/v3/drivers/middleware/gin"
|
|
// memory "github.com/ulule/limiter/v3/drivers/store/memory"
|
|
|
|
// Build "micrach/build"
|
|
// Config "micrach/config"
|
|
// Controllers "micrach/controllers"
|
|
// Db "micrach/db"
|
|
// Gateway "micrach/gateway"
|
|
// Repositories "micrach/repositories"
|
|
// Templates "micrach/templates"
|
|
// Utils "micrach/utils"
|
|
// )
|
|
|
|
// func main() {
|
|
// Config.Init()
|
|
// Db.Init()
|
|
// Db.Migrate()
|
|
// defer Db.Pool.Close()
|
|
// gin.SetMode(Config.App.Env)
|
|
// if Config.App.IsDbSeeded {
|
|
// Repositories.Seed()
|
|
// }
|
|
|
|
// if Config.App.Env == "release" {
|
|
// Build.RenameCss()
|
|
// }
|
|
|
|
// err := Utils.CreateUploadsFolder()
|
|
// if err != nil {
|
|
// log.Panicln(err)
|
|
// }
|
|
|
|
// rate := limiter.Rate{
|
|
// Period: 1 * time.Hour,
|
|
// Limit: 1000,
|
|
// }
|
|
// rateLimiterStore := memory.NewStore()
|
|
// instance := limiter.New(rateLimiterStore, rate)
|
|
// middleware := mgin.NewMiddleware(instance)
|
|
|
|
// router := gin.New()
|
|
// router.Use(gin.Recovery())
|
|
|
|
// router.SetFuncMap(template.FuncMap{
|
|
// "Iterate": Templates.Iterate,
|
|
// "NotNil": Templates.NotNil,
|
|
// })
|
|
// router.LoadHTMLGlob("templates/**/*")
|
|
// router.ForwardedByClientIP = true
|
|
// if Config.App.IsRateLimiterEnabled {
|
|
// router.Use(middleware)
|
|
// }
|
|
// router.Static("/uploads", "./uploads")
|
|
// router.Static("/static", "./static")
|
|
// if Config.App.Gateway.Url != "" {
|
|
// router.GET("/api/ping", Gateway.Ping)
|
|
// Gateway.Connect()
|
|
// }
|
|
// router.GET("/", Controllers.GetThreads)
|
|
// router.POST("/", Controllers.CreateThread)
|
|
// router.GET("/:threadID", Controllers.GetThread)
|
|
// router.POST("/:threadID", Controllers.UpdateThread)
|
|
// router.GET("/captcha/:captchaID", Controllers.GetCaptcha)
|
|
|
|
// log.Println("port", Config.App.Port, "- online")
|
|
// log.Println("all systems nominal")
|
|
|
|
// router.Run(":" + strconv.Itoa(Config.App.Port))
|
|
// }
|
|
|
|
func main() {
|
|
config.Init()
|
|
db.Init()
|
|
db.Migrate()
|
|
defer db.Pool.Close()
|
|
|
|
if config.App.IsDbSeeded {
|
|
repositories.Seed()
|
|
}
|
|
|
|
if config.App.Env == "production" {
|
|
build.RenameCss()
|
|
}
|
|
|
|
err := utils.CreateUploadsFolder()
|
|
if err != nil {
|
|
log.Panicln(err)
|
|
}
|
|
|
|
engine := html.New("./templates", ".html")
|
|
engine.AddFunc("Iterate", templates.Iterate)
|
|
engine.AddFunc("NotNil", templates.NotNil)
|
|
engine.Debug(true)
|
|
app := fiber.New(fiber.Config{
|
|
Views: engine,
|
|
})
|
|
app.Static("/uploads", "./uploads")
|
|
app.Static("/static", "./static")
|
|
|
|
app.Get("/", func(c *fiber.Ctx) error {
|
|
// return c.Render("components/index", fiber.Map{})
|
|
return c.SendString("get threads")
|
|
})
|
|
app.Post("/", func(c *fiber.Ctx) error {
|
|
return c.SendString("create thread")
|
|
})
|
|
app.Get("/:threadID", func(c *fiber.Ctx) error {
|
|
return c.SendString("get thread by id")
|
|
})
|
|
app.Post("/threadID", func(c *fiber.Ctx) error {
|
|
return c.SendString("create post in thread")
|
|
})
|
|
app.Get("/captcha/:captchaID", func(c *fiber.Ctx) error {
|
|
return c.SendString("get captcha by id")
|
|
})
|
|
|
|
log.Println("app - online, port -", strconv.Itoa(config.App.Port))
|
|
log.Println("all systems nominal")
|
|
err = app.Listen(":" + strconv.Itoa(config.App.Port))
|
|
if err != nil {
|
|
log.Println("app - ofline")
|
|
log.Panicln(err)
|
|
}
|
|
}
|