refactor(services): share the SDK list-page wrapper

Signed-off-by: bircni <bircni@icloud.com>
This commit is contained in:
bircni committed 2026-10-12 20:49:33 +02:00
1 parent 9df6cb7dd3
commit dbe2d376fe
12 files changed
+98 -142

No files matched your search

+15 -19
View File
@@ -7,7 +7,6 @@ import (
"cmp"
"context"
"maps"
"net/http"
"net/url"
"slices"
"strconv"
@@ -109,24 +108,21 @@ func (s Webhooks) from(hook *gitea.Hook) Webhook {
// List returns a page of hook metadata.
func (s Webhooks) List(ctx context.Context, limit, page int) (Page[Webhook], error) {
hooks, err := listPage(limit, page, func(limit, page int) ([]*gitea.Hook, http.Header, error) {
hooks, resp, err := call(ctx, s.Client, func(ctx context.Context, c *gitea.Client) ([]*gitea.Hook, *gitea.Response, error) {
opts := gitea.ListHooksOptions{ListOptions: listOptions(limit, page)}
switch {
case s.Scope.Global:
return c.Hooks.ListGlobalHooks(ctx, gitea.ListGlobalHooksOptions{ListOptions: opts.ListOptions})
case s.Scope.Account:
return c.Hooks.ListMyHooks(ctx, opts)
case s.Scope.Organization != "":
return c.Hooks.ListOrgHooks(ctx, s.Scope.Organization, opts)
}
owner, name, err := splitRepository(s.Scope.Repository)
if err != nil {
return nil, nil, err
}
return c.Hooks.ListRepoHooks(ctx, owner, name, opts)
})
return hooks, headerOf(resp), err
hooks, err := callPage(ctx, s.Client, limit, page, func(ctx context.Context, c *gitea.Client, list gitea.ListOptions) ([]*gitea.Hook, *gitea.Response, error) {
opts := gitea.ListHooksOptions{ListOptions: list}
switch {
case s.Scope.Global:
return c.Hooks.ListGlobalHooks(ctx, gitea.ListGlobalHooksOptions{ListOptions: opts.ListOptions})
case s.Scope.Account:
return c.Hooks.ListMyHooks(ctx, opts)
case s.Scope.Organization != "":
return c.Hooks.ListOrgHooks(ctx, s.Scope.Organization, opts)
}
owner, name, err := splitRepository(s.Scope.Repository)
if err != nil {
return nil, nil, err
}
return c.Hooks.ListRepoHooks(ctx, owner, name, opts)
})
return convertPage(hooks, s.from), err
}