package handlers import ( "net/http" "github.com/gin-gonic/gin" domain "github.com/haydenhargreaves/Potion/internal/domain/server" layouts "github.com/haydenhargreaves/Potion/internal/templates/layouts" pages "github.com/haydenhargreaves/Potion/internal/templates/pages" ) func LoginPage(ctx *gin.Context) { title := "Potion - Login" page := pages.LoginPage() ctx.HTML(200, "", layouts.AppLayout(title, page)) } func HomePage(ctx *gin.Context) { title := "Potion - Home" page := pages.HomePage() ctx.HTML(200, "", layouts.AppLayout(title, page)) } func FavoritesPage(ctx *gin.Context) { title := "Potion - Favorites" page := pages.FavoritesPage() ctx.HTML(200, "", layouts.AppLayout(title, page)) } func CreatePage(ctx *gin.Context) { // If not logged in, direct to the login page if !domain.IsLoggedIn(ctx) { ctx.Redirect(http.StatusSeeOther, domain.WEB_LOGIN) return } title := "Potion - Create" page := pages.CreatePage() ctx.HTML(200, "", layouts.AppLayout(title, page)) } func ProfilePage(ctx *gin.Context) { // If not logged in, direct to the login page if !domain.IsLoggedIn(ctx) { ctx.Redirect(http.StatusSeeOther, domain.WEB_LOGIN) return } // Else, get the user data deps := ctx.MustGet("deps").(*domain.InjectedDependencies) user := deps.UserService.GetAuthenicatedUser(ctx) title := "Potion - Profile" page := pages.ProfilePage(user) ctx.HTML(200, "", layouts.AppLayout(title, page)) } func ListPage(ctx *gin.Context) { title := "Potion - Shopping List" page := pages.ListPage() ctx.HTML(200, "", layouts.AppLayout(title, page)) }