feat: support id query for "list" apis (#908)

* feat: support id query for "list" apis

* gosec
This commit is contained in:
UUBulb
2024-12-24 23:23:01 +08:00
committed by GitHub
parent 672063f4de
commit d50605d668
10 changed files with 82 additions and 1 deletions

View File

@@ -2,6 +2,7 @@ package model
import (
"log"
"slices"
"time"
"gorm.io/gorm"
@@ -54,3 +55,20 @@ func (s *Server) AfterFind(tx *gorm.DB) error {
}
return nil
}
// Split a sorted server list into two separate lists:
// The first list contains servers with a priority set (DisplayIndex != 0).
// The second list contains servers without a priority set (DisplayIndex == 0).
// The original slice is not modified. If no server without a priority is found, it returns nil.
func SplitList(x []*Server) ([]*Server, []*Server) {
pri := func(s *Server) bool {
return s.DisplayIndex == 0
}
i := slices.IndexFunc(x, pri)
if i == -1 {
return nil, x
}
return x[:i], x[i:]
}