fix: technical debts left by the Sites, Authors and SEO slices, plus backend support for the new Sites and Authors pagination
This commit is contained in:
1 parent
9f4ce426a8
commit
daf3594316
86 files changed
+4223
-1485
No files matched your search
@@ -92,6 +92,29 @@ func (m *mockSiteRepo) List() ([]site.Site, error) {
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func (m *mockSiteRepo) Find(query site.ListQuery) (site.Page, error) {
|
||||
if err := m.fail.trigger("Find"); err != nil {
|
||||
return site.Page{}, err
|
||||
}
|
||||
all, err := m.List()
|
||||
if err != nil {
|
||||
return site.Page{}, err
|
||||
}
|
||||
needle := foldArticleSearch(strings.TrimSpace(query.Q))
|
||||
matching := []site.Site{}
|
||||
for _, s := range all {
|
||||
if needle == "" || strings.Contains(foldArticleSearch(s.Name+"\n"+s.Key+"\n"+s.BaseURL), needle) {
|
||||
matching = append(matching, s)
|
||||
}
|
||||
}
|
||||
if query.Size <= 0 {
|
||||
return site.Page{Items: matching, Total: len(matching)}, nil
|
||||
}
|
||||
start := min((max(query.Page, 1)-1)*query.Size, len(matching))
|
||||
end := min(start+query.Size, len(matching))
|
||||
return site.Page{Items: matching[start:end], Total: len(matching)}, nil
|
||||
}
|
||||
|
||||
func (m *mockSiteRepo) Get(id uint32) (site.Site, error) {
|
||||
if err := m.fail.trigger("Get"); err != nil {
|
||||
return site.Site{}, err
|
||||
|
||||
Reference in new issue
Block a user