From 0e5c40962169c2e4f644be1bf3ea65bf9597206d Mon Sep 17 00:00:00 2001 From: Darius Rapalis Date: Thu, 13 Mar 2025 23:01:18 +0200 Subject: [PATCH] sort chirps --- main.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/main.go b/main.go index 508131c..92f1581 100644 --- a/main.go +++ b/main.go @@ -16,6 +16,7 @@ import ( "net/http" "os" "regexp" + "slices" "sync/atomic" "time" ) @@ -84,6 +85,9 @@ func getAllChirpsHandler(cfg *apiConfig) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { q := r.URL.Query().Get("author_id") + sort := r.URL.Query().Get("sort") + + fmt.Println(sort) var chirps []database.Chirp var err error @@ -119,6 +123,18 @@ func getAllChirpsHandler(cfg *apiConfig) http.HandlerFunc { }) } + if sort == "desc" { + slices.SortFunc(data, func(a, b dataMaps.Chirp) int { + if b.CreatedAt.After(a.CreatedAt) { + return 1 + } + if b.CreatedAt.Before(a.CreatedAt) { + return -1 + } + return 0 + }) + } + jsonData, err := json.Marshal(data) if err != nil { httpResponse.SomethingWentWrong(w)