ekzyis 7558655458 refactor: Structure code into different packages
I have put too much code into the same files.

Also, I put everything into the same package: main.

This package is only meant for executables.

Therefore, I have refactored my code to use multiple packages. These packages also guarantee separation of concerns since Golang doesn't allow cyclic imports.
2023-09-10 23:13:08 +02:00

45 lines
1.3 KiB
Go

package router
import (
"github.com/labstack/echo/v4"
"git.ekzyis.com/ekzyis/delphi.market/env"
"git.ekzyis.com/ekzyis/delphi.market/server/router/handler"
"git.ekzyis.com/ekzyis/delphi.market/server/router/middleware"
)
func AddRoutes(e *echo.Echo) {
envVars := map[string]any{
"PUBLIC_URL": env.PublicURL,
"COMMIT_SHORT_SHA": env.CommitShortSha,
"COMMIT_LONG_SHA": env.CommitLongSha,
"VERSION": env.Version,
}
e.Use(middleware.Session(envVars))
e.GET("/", handler.HandleIndex(envVars))
e.GET("/login", handler.HandleLogin(envVars))
e.GET("/api/login", handler.HandleLoginCallback(envVars))
e.GET("/api/session", handler.HandleCheckSession(envVars))
e.POST("/logout", handler.HandleLogout(envVars))
e.GET("/user",
handler.HandleUser(envVars),
middleware.SessionGuard(envVars))
e.GET("/market/:id",
handler.HandleMarket(envVars),
middleware.SessionGuard(envVars))
e.POST("/market/:id/order",
handler.HandlePostOrder(envVars),
middleware.SessionGuard(envVars),
middleware.LNDGuard(envVars))
e.GET("/invoice/:id",
handler.HandleInvoice(envVars),
middleware.SessionGuard(envVars),
middleware.LNDGuard(envVars),
)
e.GET("/api/invoice/:id",
handler.HandleInvoiceAPI(envVars),
middleware.SessionGuard(envVars),
middleware.LNDGuard(envVars),
)
}