limit products to 10 and sort after published at date
parent
531da068de
commit
7ceccb5b7f
|
@ -10,7 +10,9 @@ import (
|
||||||
"jannex/admin-dashboard-backend/modules/logger"
|
"jannex/admin-dashboard-backend/modules/logger"
|
||||||
"jannex/admin-dashboard-backend/modules/notification"
|
"jannex/admin-dashboard-backend/modules/notification"
|
||||||
"jannex/admin-dashboard-backend/modules/structs"
|
"jannex/admin-dashboard-backend/modules/structs"
|
||||||
|
"sort"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"time"
|
||||||
|
|
||||||
"git.ex.umbach.dev/Alex/roese-utils/rslogger"
|
"git.ex.umbach.dev/Alex/roese-utils/rslogger"
|
||||||
"git.ex.umbach.dev/Alex/roese-utils/rsutils"
|
"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{
|
cache.SetPipelineProductsCache(structs.PipelineProductsCache{
|
||||||
NewProducts: newProducts,
|
NewProducts: newProducts,
|
||||||
InWorkProducts: inWorkProducts,
|
InWorkProducts: inWorkProducts,
|
||||||
|
|
Loading…
Reference in New Issue