limit products to 10 and sort after published at date

main
alex 2024-06-11 22:18:34 +02:00
parent 531da068de
commit 7ceccb5b7f
2 changed files with 43 additions and 0 deletions

BIN
main

Binary file not shown.

View File

@ -10,7 +10,9 @@ import (
"jannex/admin-dashboard-backend/modules/logger"
"jannex/admin-dashboard-backend/modules/notification"
"jannex/admin-dashboard-backend/modules/structs"
"sort"
"strconv"
"time"
"git.ex.umbach.dev/Alex/roese-utils/rslogger"
"git.ex.umbach.dev/Alex/roese-utils/rsutils"
@ -201,6 +203,47 @@ func fetchProducts(srv *sheets.Service) error {
}
}
// sort new products
// compare function
comparePublishedAt := func(a, b structs.NewProduct) int {
if a.PublishedAt == "" && b.PublishedAt == "" {
return 0
}
if a.PublishedAt == "" {
return 1
}
if b.PublishedAt == "" {
return -1
}
dateFormat := "02.01.2006"
dateA, errA := time.Parse(dateFormat, a.PublishedAt)
dateB, errB := time.Parse(dateFormat, b.PublishedAt)
if errA != nil || errB != nil {
return 0 // Handle parsing errors if necessary
}
if dateA.After(dateB) {
return -1
}
if dateA.Before(dateB) {
return 1
}
return 0
}
// sort slice
sort.Slice(newProducts, func(i, j int) bool {
return comparePublishedAt(newProducts[i], newProducts[j]) < 0
})
// limit to max 10 new products
if len(newProducts) > 10 {
newProducts = newProducts[:10]
}
cache.SetPipelineProductsCache(structs.PipelineProductsCache{
NewProducts: newProducts,
InWorkProducts: inWorkProducts,