diff options
Diffstat (limited to 'cmd/web/controller/htmx/article.go')
-rw-r--r-- | cmd/web/controller/htmx/article.go | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/cmd/web/controller/htmx/article.go b/cmd/web/controller/htmx/article.go deleted file mode 100644 index c8dd8f4..0000000 --- a/cmd/web/controller/htmx/article.go +++ /dev/null @@ -1,64 +0,0 @@ -package HTMXController - -import ( - "errors" - "projecty/cmd/web/model" - "projecty/internal/authentication" - "projecty/internal/database" - - "github.com/gofiber/fiber/v2" - "gorm.io/gorm" -) - -func ArticleDetailPage(c *fiber.Ctx) error { - - var article model.Article - isSelf := false - isFollowed := false - var authenticatedUser model.User - - isAuthenticated, userID := authentication.AuthGet(c) - - db := database.Get() - - if isAuthenticated { - db.Model(&authenticatedUser). - Where("id = ?", userID). - First(&authenticatedUser) - } - - err := db.Model(&article). - Where("slug = ?", c.Params("slug")). - Preload("Favorites"). - Preload("Tags", func(db *gorm.DB) *gorm.DB { - return db.Order("tags.name asc") - }). - Preload("User"). - Find(&article).Error - - if err != nil { - if errors.Is(err, gorm.ErrRecordNotFound) { - return c.Redirect("/") - } - } - - if isAuthenticated && article.User.FollowedBy(userID) { - isFollowed = true - } - - if isAuthenticated && article.User.ID == userID { - isSelf = true - } - - return c.Render("articles/htmx-article-page", fiber.Map{ - "PageTitle": article.Title, - "NavBarActive": "none", - "Article": article, - "IsOob": false, - "IsSelf": isSelf, - "IsFollowed": isFollowed, - "IsArticleFavorited": article.FavoritedBy(userID), - "AuthenticatedUser": authenticatedUser, - "FiberCtx": c, - }, "layouts/app-htmx") -} |