From 2638f22e950afc3cb7fe426efef837d65ad4e215 Mon Sep 17 00:00:00 2001 From: Pomog Date: Fri, 22 Dec 2023 08:22:15 +0200 Subject: [PATCH 1/2] (m *SqliteBDRepo) CreateThread(thread models.Thread) validation --- internal/repository/dbrepo/sqllite.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/internal/repository/dbrepo/sqllite.go b/internal/repository/dbrepo/sqllite.go index 5aac851..b1fbd56 100644 --- a/internal/repository/dbrepo/sqllite.go +++ b/internal/repository/dbrepo/sqllite.go @@ -126,6 +126,10 @@ func (m *SqliteBDRepo) CreateThread(thread models.Thread) (int64, error) { ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second) defer cancel() + if thread.Subject == "" { + return 0, errors.New("you can not create empty thread") + } + user, err := m.GetUserByID(thread.UserID) if err != nil { return 0, errors.New("guest can not create a thread") From 7c467ffeb07b442037152bcb7aef936525359fa5 Mon Sep 17 00:00:00 2001 From: Pomog Date: Fri, 22 Dec 2023 14:54:02 +0200 Subject: [PATCH 2/2] BUG no posts corrected --- internal/handler/homeHandler.go | 23 ++++++++++++++++------- internal/renderer/render.go | 3 +++ template/home.page.html | 6 +++++- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/internal/handler/homeHandler.go b/internal/handler/homeHandler.go index ecadc0d..9d792cb 100644 --- a/internal/handler/homeHandler.go +++ b/internal/handler/homeHandler.go @@ -74,14 +74,23 @@ func (m *Repository) HomeHandler(w http.ResponseWriter, r *http.Request) { log.Fatal(err) } info.Posts = posts - userWhoCreatedLastPost, err := m.DB.GetUserByID(getUserThatCreatedLastPost(posts)) - if err != nil { - setErrorAndRedirect(w, r, "Could not get user as creator, m.DB.GetUserByID(getUserThatCreatedLastPost(posts))", "/error-page") - return - } - info.PictureUserWhoCreatedLastPost = userWhoCreatedLastPost.Picture - info.UserNameWhoCreatedLastPost = userWhoCreatedLastPost.UserName + userIDwhoCreatedLastPost := getUserThatCreatedLastPost(posts) + fmt.Println("getUserThatCreatedLastPost " + strconv.Itoa(userIDwhoCreatedLastPost)) + fmt.Println("len(posts) " + strconv.Itoa(len(posts))) + + if userIDwhoCreatedLastPost != 0 || len(posts) != 0 { + userWhoCreatedLastPost, err := m.DB.GetUserByID(userIDwhoCreatedLastPost) + if err != nil { + setErrorAndRedirect(w, r, "Could not get user as creator, m.DB.GetUserByID(getUserThatCreatedLastPost(posts))", "/error-page") + return + } + + info.PictureUserWhoCreatedLastPost = userWhoCreatedLastPost.Picture + info.UserNameWhoCreatedLastPost = userWhoCreatedLastPost.UserName + } else if userIDwhoCreatedLastPost == 0 || len(posts) == 0 { + info.Created = "" + } threadsInfo = append(threadsInfo, info) } diff --git a/internal/renderer/render.go b/internal/renderer/render.go index c2f08cc..a2b58b3 100644 --- a/internal/renderer/render.go +++ b/internal/renderer/render.go @@ -18,6 +18,9 @@ var app *config.AppConfig var pathToTemplates = "./template" var functions = template.FuncMap{ + "postsLen": func(allPosts []models.Post) int { + return len(allPosts) + }, "findLastPost": func(allPosts []models.Post) models.Post { var latestPost models.Post latestPost.Created, _ = time.Parse("2006-01-02 15:04:05", "2006-01-02 15:04:05") diff --git a/template/home.page.html b/template/home.page.html index 8d16432..abe9c42 100644 --- a/template/home.page.html +++ b/template/home.page.html @@ -59,8 +59,12 @@

What this topic will
{{ .Subject }} + {{ $lenPosts := postsLen .Posts}} {{ $lastPost := findLastPost .Posts }} - {{ $dateLastPostCreated := convertTime $lastPost }} + {{ $dateLastPostCreated := "" }} + {{ if gt $lenPosts 0 }} + {{ $dateLastPostCreated = convertTime $lastPost }} + {{ end }} From:
picture
{{ .UserNameWhoCreatedLastPost }}
Posted: {{$dateLastPostCreated}} {{ $lastPostShorten := shortenPost .Posts}}