From f4487c00405542225658af07f1d8a3044800caff Mon Sep 17 00:00:00 2001 From: ferreo Date: Tue, 30 Jul 2024 02:07:55 +0100 Subject: [PATCH] Map to slice --- handlers/build/queue.go | 19 +++++++++++-------- handlers/packages/packages.go | 20 +++++++++++--------- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/handlers/build/queue.go b/handlers/build/queue.go index 1566cde..4b33886 100644 --- a/handlers/build/queue.go +++ b/handlers/build/queue.go @@ -3,15 +3,15 @@ package handlers_build import ( "brunel/buildqueue" "brunel/domain" - "brunel/fastmap" + "sort" "strings" "github.com/gofiber/fiber/v2" ) type QueueResponse struct { - Total int `json:"total"` - Packages *fastmap.Fastmap[string, domain.BuildQueueItem] `json:"packages"` + Total int `json:"total"` + Packages []domain.BuildQueueItem `json:"packages"` } func Queue(c *fiber.Ctx) error { @@ -27,7 +27,7 @@ func Queue(c *fiber.Ctx) error { } packs := buildqueue.GetQueue() - finalReturn := fastmap.New[string, domain.BuildQueueItem]() + finalReturn := make([]domain.BuildQueueItem, 0) packs.ForEach(func(k string, source domain.BuildQueueItem) bool { matchesSearch := search == "" || strings.Contains(strings.ToLower(k), search) @@ -40,16 +40,19 @@ func Queue(c *fiber.Ctx) error { }) if matchesFilter && matchesSearch { - finalReturn.Set(k, source) + finalReturn = append(finalReturn, source) } return true }) - finalReturn.StableSortByKey() - result := finalReturn.GetPage(adjustedPageNum, pageSize) + sort.Slice(finalReturn, func(i, j int) bool { + return finalReturn[i].Source.Name < finalReturn[j].Source.Name + }) + + result := finalReturn[adjustedPageNum*pageSize : (adjustedPageNum+1)*pageSize] response := QueueResponse{ - Total: finalReturn.Len(), + Total: len(finalReturn), Packages: result, } diff --git a/handlers/packages/packages.go b/handlers/packages/packages.go index 52b67a2..1ee2d1b 100644 --- a/handlers/packages/packages.go +++ b/handlers/packages/packages.go @@ -2,16 +2,16 @@ package handlers_packages import ( "brunel/domain" - "brunel/fastmap" "brunel/packages" + "sort" "strings" "github.com/gofiber/fiber/v2" ) type PackagesResponse struct { - Total int `json:"total"` - Packages *fastmap.Fastmap[string, domain.SourcePackage] `json:"packages"` + Total int `json:"total"` + Packages []domain.SourcePackage `json:"packages"` } func Packages(c *fiber.Ctx) error { @@ -28,8 +28,7 @@ func Packages(c *fiber.Ctx) error { packs := packages.GetPackages() - finalReturn := fastmap.New[string, domain.SourcePackage]() - + finalReturn := make([]domain.SourcePackage, 0) packs.ForEach(func(k string, source domain.SourcePackage) bool { matchesFilter := filter == "" matchesSearch := search == "" || strings.Contains(strings.ToLower(k), search) @@ -45,15 +44,18 @@ func Packages(c *fiber.Ctx) error { }) if matchesFilter && matchesSearch { - finalReturn.Set(k, source) + finalReturn = append(finalReturn, source) } return true }) - finalReturn.StableSortByKey() - result := finalReturn.GetPage(adjustedPageNum, pageSize) + sort.Slice(finalReturn, func(i, j int) bool { + return finalReturn[i].Name < finalReturn[j].Name + }) + + result := finalReturn[adjustedPageNum*pageSize : (adjustedPageNum+1)*pageSize] response := PackagesResponse{ - Total: finalReturn.Len(), + Total: len(finalReturn), Packages: result, }