mirror of
https://gitea.com/gitea/tea.git
synced 2026-10-26 11:01:25 +01:00
refactor(services): share the SDK list-page wrapper
Signed-off-by: bircni <bircni@icloud.com>
This commit is contained in:
12 files changed
+49
-93
No files matched your search
@@ -68,19 +68,15 @@ func (s ActionSecrets) ListPage(ctx context.Context, limit, page int) (Page[Acti
|
|||||||
if s.Scope.Account {
|
if s.Scope.Account {
|
||||||
return Page[ActionSecret]{}, &CapabilityError{Feature: "account secret listing", Reason: "Gitea exposes account secret set/delete operations only"}
|
return Page[ActionSecret]{}, &CapabilityError{Feature: "account secret listing", Reason: "Gitea exposes account secret set/delete operations only"}
|
||||||
}
|
}
|
||||||
window, err := listPage(limit, page, func(limit, page int) ([]*gitea.Secret, http.Header, error) {
|
window, err := callPage(ctx, s.Client, limit, page, func(ctx context.Context, c *gitea.Client, list gitea.ListOptions) ([]*gitea.Secret, *gitea.Response, error) {
|
||||||
options := listOptions(limit, page)
|
|
||||||
secrets, resp, err := call(ctx, s.Client, func(ctx context.Context, c *gitea.Client) ([]*gitea.Secret, *gitea.Response, error) {
|
|
||||||
if s.Scope.Organization != "" {
|
if s.Scope.Organization != "" {
|
||||||
return c.Actions.ListOrgSecrets(ctx, s.Scope.Organization, gitea.ListOrgActionsSecretOption{ListOptions: options})
|
return c.Actions.ListOrgSecrets(ctx, s.Scope.Organization, gitea.ListOrgActionsSecretOption{ListOptions: list})
|
||||||
}
|
}
|
||||||
owner, repo, err := splitRepository(s.Scope.Repository)
|
owner, repo, err := splitRepository(s.Scope.Repository)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
return c.Actions.ListRepoSecrets(ctx, owner, repo, gitea.ListRepoActionsSecretOption{ListOptions: options})
|
return c.Actions.ListRepoSecrets(ctx, owner, repo, gitea.ListRepoActionsSecretOption{ListOptions: list})
|
||||||
})
|
|
||||||
return secrets, headerOf(resp), err
|
|
||||||
})
|
})
|
||||||
return convertPage(window, secretFrom), err
|
return convertPage(window, secretFrom), err
|
||||||
}
|
}
|
||||||
@@ -146,14 +142,11 @@ func (s ActionVariables) ListPage(ctx context.Context, limit, page int) (Page[Ac
|
|||||||
var window Page[*gitea.ActionsVariable]
|
var window Page[*gitea.ActionsVariable]
|
||||||
var err error
|
var err error
|
||||||
if s.Scope.Account || s.Scope.Organization != "" {
|
if s.Scope.Account || s.Scope.Organization != "" {
|
||||||
window, err = listPage(limit, page, func(limit, page int) ([]*gitea.ActionsVariable, http.Header, error) {
|
window, err = callPage(ctx, s.Client, limit, page, func(ctx context.Context, c *gitea.Client, list gitea.ListOptions) ([]*gitea.ActionsVariable, *gitea.Response, error) {
|
||||||
variables, resp, err := call(ctx, s.Client, func(ctx context.Context, c *gitea.Client) ([]*gitea.ActionsVariable, *gitea.Response, error) {
|
|
||||||
if s.Scope.Account {
|
if s.Scope.Account {
|
||||||
return c.Actions.ListUserVariables(ctx, listOptions(limit, page))
|
return c.Actions.ListUserVariables(ctx, list)
|
||||||
}
|
}
|
||||||
return c.Actions.ListOrgVariables(ctx, s.Scope.Organization, gitea.ListOrgActionsVariableOption{ListOptions: listOptions(limit, page)})
|
return c.Actions.ListOrgVariables(ctx, s.Scope.Organization, gitea.ListOrgActionsVariableOption{ListOptions: list})
|
||||||
})
|
|
||||||
return variables, headerOf(resp), err
|
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
window, err = rawPage[*gitea.ActionsVariable](ctx, s.Client, s.repoVariables(""), nil, limit, page)
|
window, err = rawPage[*gitea.ActionsVariable](ctx, s.Client, s.repoVariables(""), nil, limit, page)
|
||||||
|
|||||||
@@ -74,11 +74,8 @@ type AdminUsers struct{ Client *transport.Client }
|
|||||||
// List returns a page of the users whose username, full name or email contains query, or of
|
// List returns a page of the users whose username, full name or email contains query, or of
|
||||||
// every user without one.
|
// every user without one.
|
||||||
func (s AdminUsers) List(ctx context.Context, query string, limit, page int) (Page[AdminUser], error) {
|
func (s AdminUsers) List(ctx context.Context, query string, limit, page int) (Page[AdminUser], error) {
|
||||||
users, err := listPage(limit, page, func(limit, page int) ([]*gitea.User, http.Header, error) {
|
users, err := callPage(ctx, s.Client, limit, page, func(ctx context.Context, c *gitea.Client, list gitea.ListOptions) ([]*gitea.User, *gitea.Response, error) {
|
||||||
users, resp, err := call(ctx, s.Client, func(ctx context.Context, c *gitea.Client) ([]*gitea.User, *gitea.Response, error) {
|
return c.Admin.ListUsers(ctx, gitea.AdminListUsersOptions{ListOptions: list, Query: query})
|
||||||
return c.Admin.ListUsers(ctx, gitea.AdminListUsersOptions{ListOptions: listOptions(limit, page), Query: query})
|
|
||||||
})
|
|
||||||
return users, headerOf(resp), err
|
|
||||||
})
|
})
|
||||||
return convertPage(users, adminUserFrom), err
|
return convertPage(users, adminUserFrom), err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
gitea "gitea.dev/sdk"
|
||||||
"gitea.dev/tea/internal/transport"
|
"gitea.dev/tea/internal/transport"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -99,6 +100,16 @@ func listPage[T any](limit, page int, fetch func(limit, page int) ([]T, http.Hea
|
|||||||
return Page[T]{Items: result[:min(len(result), limit)], More: more, Total: total, Counted: counted}, nil
|
return Page[T]{Items: result[:min(len(result), limit)], More: more, Total: total, Counted: counted}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// callPage is listPage over an SDK list call.
|
||||||
|
func callPage[T any](ctx context.Context, client *transport.Client, limit, page int, list func(context.Context, *gitea.Client, gitea.ListOptions) ([]T, *gitea.Response, error)) (Page[T], error) {
|
||||||
|
return listPage(limit, page, func(limit, page int) ([]T, http.Header, error) {
|
||||||
|
items, resp, err := call(ctx, client, func(ctx context.Context, c *gitea.Client) ([]T, *gitea.Response, error) {
|
||||||
|
return list(ctx, c, listOptions(limit, page))
|
||||||
|
})
|
||||||
|
return items, headerOf(resp), err
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// rawPage is listPage over a raw JSON collection endpoint; it sets limit and page on query.
|
// rawPage is listPage over a raw JSON collection endpoint; it sets limit and page on query.
|
||||||
func rawPage[T any](ctx context.Context, client *transport.Client, endpoint string, query url.Values, limit, page int) (Page[T], error) {
|
func rawPage[T any](ctx context.Context, client *transport.Client, endpoint string, query url.Values, limit, page int) (Page[T], error) {
|
||||||
query = maps.Clone(query)
|
query = maps.Clone(query)
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ package services
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"net/http"
|
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
@@ -122,13 +121,10 @@ func (s Issues) ListPage(ctx context.Context, opts ListOptions) (Page[Issue], er
|
|||||||
if opts.Before != nil {
|
if opts.Before != nil {
|
||||||
query.Before = *opts.Before
|
query.Before = *opts.Before
|
||||||
}
|
}
|
||||||
issues, err := listPage(opts.Limit, opts.Page, func(limit, page int) ([]*gitea.Issue, http.Header, error) {
|
issues, err := callPage(ctx, s.Client, opts.Limit, opts.Page, func(ctx context.Context, c *gitea.Client, list gitea.ListOptions) ([]*gitea.Issue, *gitea.Response, error) {
|
||||||
query.ListOptions = listOptions(limit, page)
|
query.ListOptions = list
|
||||||
issues, resp, err := call(ctx, s.Client, func(ctx context.Context, c *gitea.Client) ([]*gitea.Issue, *gitea.Response, error) {
|
|
||||||
return c.Issues.ListRepoIssues(ctx, owner, repo, query)
|
return c.Issues.ListRepoIssues(ctx, owner, repo, query)
|
||||||
})
|
})
|
||||||
return issues, headerOf(resp), err
|
|
||||||
})
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return Page[Issue]{}, err
|
return Page[Issue]{}, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -212,11 +212,8 @@ func (s Milestones) ListPage(ctx context.Context, state string, limit, page int)
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return Page[Milestone]{}, err
|
return Page[Milestone]{}, err
|
||||||
}
|
}
|
||||||
milestones, err := listPage(limit, page, func(limit, page int) ([]*gitea.Milestone, http.Header, error) {
|
milestones, err := callPage(ctx, s.Client, limit, page, func(ctx context.Context, c *gitea.Client, list gitea.ListOptions) ([]*gitea.Milestone, *gitea.Response, error) {
|
||||||
milestones, resp, err := call(ctx, s.Client, func(ctx context.Context, c *gitea.Client) ([]*gitea.Milestone, *gitea.Response, error) {
|
return c.Repositories.ListMilestones(ctx, owner, repo, gitea.ListMilestoneOption{ListOptions: list, State: gitea.StateType(state)})
|
||||||
return c.Repositories.ListMilestones(ctx, owner, repo, gitea.ListMilestoneOption{ListOptions: listOptions(limit, page), State: gitea.StateType(state)})
|
|
||||||
})
|
|
||||||
return milestones, headerOf(resp), err
|
|
||||||
})
|
})
|
||||||
return convertPage(milestones, milestoneFrom), err
|
return convertPage(milestones, milestoneFrom), err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,9 +62,8 @@ type Organizations struct{ Client *transport.Client }
|
|||||||
|
|
||||||
// List selects public organizations, your organizations, or a named user's organizations.
|
// List selects public organizations, your organizations, or a named user's organizations.
|
||||||
func (s Organizations) List(ctx context.Context, mine bool, username string, limit, page int) (Page[Organization], error) {
|
func (s Organizations) List(ctx context.Context, mine bool, username string, limit, page int) (Page[Organization], error) {
|
||||||
orgs, err := listPage(limit, page, func(limit, page int) ([]*gitea.Organization, http.Header, error) {
|
orgs, err := callPage(ctx, s.Client, limit, page, func(ctx context.Context, c *gitea.Client, list gitea.ListOptions) ([]*gitea.Organization, *gitea.Response, error) {
|
||||||
orgs, resp, err := call(ctx, s.Client, func(ctx context.Context, c *gitea.Client) ([]*gitea.Organization, *gitea.Response, error) {
|
opts := gitea.ListOrgsOptions{ListOptions: list}
|
||||||
opts := gitea.ListOrgsOptions{ListOptions: listOptions(limit, page)}
|
|
||||||
switch {
|
switch {
|
||||||
case mine:
|
case mine:
|
||||||
return c.Organizations.ListMyOrgs(ctx, opts)
|
return c.Organizations.ListMyOrgs(ctx, opts)
|
||||||
@@ -73,8 +72,6 @@ func (s Organizations) List(ctx context.Context, mine bool, username string, lim
|
|||||||
}
|
}
|
||||||
return c.Organizations.ListOrgs(ctx, opts)
|
return c.Organizations.ListOrgs(ctx, opts)
|
||||||
})
|
})
|
||||||
return orgs, headerOf(resp), err
|
|
||||||
})
|
|
||||||
return convertPage(orgs, organizationFrom), err
|
return convertPage(orgs, organizationFrom), err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -215,15 +212,12 @@ type MemberListOptions struct {
|
|||||||
|
|
||||||
// Members lists the members of an organization.
|
// Members lists the members of an organization.
|
||||||
func (s Organizations) Members(ctx context.Context, name string, opts MemberListOptions) (Page[OrganizationMember], error) {
|
func (s Organizations) Members(ctx context.Context, name string, opts MemberListOptions) (Page[OrganizationMember], error) {
|
||||||
users, err := listPage(opts.Limit, opts.Page, func(limit, page int) ([]*gitea.User, http.Header, error) {
|
users, err := callPage(ctx, s.Client, opts.Limit, opts.Page, func(ctx context.Context, c *gitea.Client, list gitea.ListOptions) ([]*gitea.User, *gitea.Response, error) {
|
||||||
users, resp, err := call(ctx, s.Client, func(ctx context.Context, c *gitea.Client) ([]*gitea.User, *gitea.Response, error) {
|
membership := gitea.ListOrgMembershipOption{ListOptions: list}
|
||||||
list := gitea.ListOrgMembershipOption{ListOptions: listOptions(limit, page)}
|
|
||||||
if opts.Public {
|
if opts.Public {
|
||||||
return c.Organizations.ListPublicOrgMembership(ctx, name, list)
|
return c.Organizations.ListPublicOrgMembership(ctx, name, membership)
|
||||||
}
|
}
|
||||||
return c.Organizations.ListOrgMembership(ctx, name, list)
|
return c.Organizations.ListOrgMembership(ctx, name, membership)
|
||||||
})
|
|
||||||
return users, headerOf(resp), err
|
|
||||||
})
|
})
|
||||||
members := convertPage(users, memberFrom)
|
members := convertPage(users, memberFrom)
|
||||||
if err != nil || !(opts.Public || opts.Visibility) {
|
if err != nil || !(opts.Public || opts.Visibility) {
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ package services
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"net/http"
|
|
||||||
|
|
||||||
gitea "gitea.dev/sdk"
|
gitea "gitea.dev/sdk"
|
||||||
)
|
)
|
||||||
@@ -77,19 +76,16 @@ func (s Repositories) ListPage(ctx context.Context, opts RepositoryListOptions)
|
|||||||
}
|
}
|
||||||
window, err = rawPage[*gitea.Repository](ctx, s.Client, endpoint, nil, opts.Limit, opts.Page)
|
window, err = rawPage[*gitea.Repository](ctx, s.Client, endpoint, nil, opts.Limit, opts.Page)
|
||||||
} else {
|
} else {
|
||||||
window, err = listPage(opts.Limit, opts.Page, func(limit, page int) ([]*gitea.Repository, http.Header, error) {
|
window, err = callPage(ctx, s.Client, opts.Limit, opts.Page, func(ctx context.Context, c *gitea.Client, list gitea.ListOptions) ([]*gitea.Repository, *gitea.Response, error) {
|
||||||
items, resp, err := call(ctx, s.Client, func(ctx context.Context, c *gitea.Client) ([]*gitea.Repository, *gitea.Response, error) {
|
|
||||||
switch {
|
switch {
|
||||||
case isOrg:
|
case isOrg:
|
||||||
return c.Repositories.ListOrgRepos(ctx, opts.Owner, gitea.ListOrgReposOptions{ListOptions: listOptions(limit, page)})
|
return c.Repositories.ListOrgRepos(ctx, opts.Owner, gitea.ListOrgReposOptions{ListOptions: list})
|
||||||
case opts.Owner != "":
|
case opts.Owner != "":
|
||||||
return c.Repositories.ListUserRepos(ctx, opts.Owner, gitea.ListReposOptions{ListOptions: listOptions(limit, page)})
|
return c.Repositories.ListUserRepos(ctx, opts.Owner, gitea.ListReposOptions{ListOptions: list})
|
||||||
default:
|
default:
|
||||||
return c.Repositories.ListMyRepos(ctx, gitea.ListReposOptions{ListOptions: listOptions(limit, page)})
|
return c.Repositories.ListMyRepos(ctx, gitea.ListReposOptions{ListOptions: list})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return items, headerOf(resp), err
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return Page[Repository]{}, err
|
return Page[Repository]{}, err
|
||||||
@@ -126,13 +122,10 @@ func (s Repositories) Search(ctx context.Context, opts RepositorySearchOptions)
|
|||||||
return Page[Repository]{}, err
|
return Page[Repository]{}, err
|
||||||
}
|
}
|
||||||
options.PrioritizedByOwnerID = account.ID
|
options.PrioritizedByOwnerID = account.ID
|
||||||
window, err := listPage(opts.Limit, opts.Page, func(limit, page int) ([]*gitea.Repository, http.Header, error) {
|
window, err := callPage(ctx, s.Client, opts.Limit, opts.Page, func(ctx context.Context, c *gitea.Client, list gitea.ListOptions) ([]*gitea.Repository, *gitea.Response, error) {
|
||||||
options.ListOptions = listOptions(limit, page)
|
options.ListOptions = list
|
||||||
items, resp, err := call(ctx, s.Client, func(ctx context.Context, c *gitea.Client) ([]*gitea.Repository, *gitea.Response, error) {
|
|
||||||
return c.Repositories.SearchRepos(ctx, options)
|
return c.Repositories.SearchRepos(ctx, options)
|
||||||
})
|
})
|
||||||
return items, headerOf(resp), err
|
|
||||||
})
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return Page[Repository]{}, err
|
return Page[Repository]{}, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ package services
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
|
||||||
"net/url"
|
"net/url"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -107,13 +106,10 @@ func (s Issues) searchRepository(ctx context.Context, opts DiscussionSearchOptio
|
|||||||
query.MentionedBy = account
|
query.MentionedBy = account
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return listPage(opts.Limit, opts.Page, func(limit, page int) ([]*gitea.Issue, http.Header, error) {
|
return callPage(ctx, s.Client, opts.Limit, opts.Page, func(ctx context.Context, c *gitea.Client, list gitea.ListOptions) ([]*gitea.Issue, *gitea.Response, error) {
|
||||||
query.ListOptions = listOptions(limit, page)
|
query.ListOptions = list
|
||||||
issues, resp, err := call(ctx, s.Client, func(ctx context.Context, c *gitea.Client) ([]*gitea.Issue, *gitea.Response, error) {
|
|
||||||
return c.Issues.ListRepoIssues(ctx, owner, repo, query)
|
return c.Issues.ListRepoIssues(ctx, owner, repo, query)
|
||||||
})
|
})
|
||||||
return issues, headerOf(resp), err
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s Issues) searchInstance(ctx context.Context, opts DiscussionSearchOptions, kind gitea.IssueType) (Page[*gitea.Issue], error) {
|
func (s Issues) searchInstance(ctx context.Context, opts DiscussionSearchOptions, kind gitea.IssueType) (Page[*gitea.Issue], error) {
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ package services
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"net/http"
|
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
gitea "gitea.dev/sdk"
|
gitea "gitea.dev/sdk"
|
||||||
@@ -31,11 +30,8 @@ type SSHKeys struct{ Client *transport.Client }
|
|||||||
|
|
||||||
// List returns a page of public keys.
|
// List returns a page of public keys.
|
||||||
func (s SSHKeys) List(ctx context.Context, limit, page int) (Page[SSHKey], error) {
|
func (s SSHKeys) List(ctx context.Context, limit, page int) (Page[SSHKey], error) {
|
||||||
keys, err := listPage(limit, page, func(limit, page int) ([]*gitea.PublicKey, http.Header, error) {
|
keys, err := callPage(ctx, s.Client, limit, page, func(ctx context.Context, c *gitea.Client, list gitea.ListOptions) ([]*gitea.PublicKey, *gitea.Response, error) {
|
||||||
keys, resp, err := call(ctx, s.Client, func(ctx context.Context, c *gitea.Client) ([]*gitea.PublicKey, *gitea.Response, error) {
|
return c.Users.ListMyPublicKeys(ctx, gitea.ListPublicKeysOptions{ListOptions: list})
|
||||||
return c.Users.ListMyPublicKeys(ctx, gitea.ListPublicKeysOptions{ListOptions: listOptions(limit, page)})
|
|
||||||
})
|
|
||||||
return keys, headerOf(resp), err
|
|
||||||
})
|
})
|
||||||
return convertPage(keys, sshKeyFrom), err
|
return convertPage(keys, sshKeyFrom), err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -125,11 +125,8 @@ type Teams struct{ Client *transport.Client }
|
|||||||
|
|
||||||
// List lists teams in one organization.
|
// List lists teams in one organization.
|
||||||
func (s Teams) List(ctx context.Context, org string, limit, page int) (Page[Team], error) {
|
func (s Teams) List(ctx context.Context, org string, limit, page int) (Page[Team], error) {
|
||||||
teams, err := listPage(limit, page, func(limit, page int) ([]*gitea.Team, http.Header, error) {
|
teams, err := callPage(ctx, s.Client, limit, page, func(ctx context.Context, c *gitea.Client, list gitea.ListOptions) ([]*gitea.Team, *gitea.Response, error) {
|
||||||
teams, resp, err := call(ctx, s.Client, func(ctx context.Context, c *gitea.Client) ([]*gitea.Team, *gitea.Response, error) {
|
return c.Organizations.ListOrgTeams(ctx, org, gitea.ListTeamsOptions{ListOptions: list})
|
||||||
return c.Organizations.ListOrgTeams(ctx, org, gitea.ListTeamsOptions{ListOptions: listOptions(limit, page)})
|
|
||||||
})
|
|
||||||
return teams, headerOf(resp), err
|
|
||||||
})
|
})
|
||||||
return inOrganization(convertPage(teams, teamFrom), org), err
|
return inOrganization(convertPage(teams, teamFrom), org), err
|
||||||
}
|
}
|
||||||
@@ -274,11 +271,8 @@ func (s Teams) Delete(ctx context.Context, id int64) error {
|
|||||||
|
|
||||||
// Members lists members of a team.
|
// Members lists members of a team.
|
||||||
func (s Teams) Members(ctx context.Context, id int64, limit, page int) (Page[OrganizationMember], error) {
|
func (s Teams) Members(ctx context.Context, id int64, limit, page int) (Page[OrganizationMember], error) {
|
||||||
users, err := listPage(limit, page, func(limit, page int) ([]*gitea.User, http.Header, error) {
|
users, err := callPage(ctx, s.Client, limit, page, func(ctx context.Context, c *gitea.Client, list gitea.ListOptions) ([]*gitea.User, *gitea.Response, error) {
|
||||||
users, resp, err := call(ctx, s.Client, func(ctx context.Context, c *gitea.Client) ([]*gitea.User, *gitea.Response, error) {
|
return c.Organizations.ListTeamMembers(ctx, id, gitea.ListTeamMembersOptions{ListOptions: list})
|
||||||
return c.Organizations.ListTeamMembers(ctx, id, gitea.ListTeamMembersOptions{ListOptions: listOptions(limit, page)})
|
|
||||||
})
|
|
||||||
return users, headerOf(resp), err
|
|
||||||
})
|
})
|
||||||
return convertPage(users, memberFrom), err
|
return convertPage(users, memberFrom), err
|
||||||
}
|
}
|
||||||
@@ -296,11 +290,8 @@ func (s Teams) SetMember(ctx context.Context, id int64, username string, add boo
|
|||||||
|
|
||||||
// Repositories lists repositories accessible to a team.
|
// Repositories lists repositories accessible to a team.
|
||||||
func (s Teams) Repositories(ctx context.Context, id int64, limit, page int) (Page[Repository], error) {
|
func (s Teams) Repositories(ctx context.Context, id int64, limit, page int) (Page[Repository], error) {
|
||||||
repos, err := listPage(limit, page, func(limit, page int) ([]*gitea.Repository, http.Header, error) {
|
repos, err := callPage(ctx, s.Client, limit, page, func(ctx context.Context, c *gitea.Client, list gitea.ListOptions) ([]*gitea.Repository, *gitea.Response, error) {
|
||||||
repos, resp, err := call(ctx, s.Client, func(ctx context.Context, c *gitea.Client) ([]*gitea.Repository, *gitea.Response, error) {
|
return c.Organizations.ListTeamRepositories(ctx, id, gitea.ListTeamRepositoriesOptions{ListOptions: list})
|
||||||
return c.Organizations.ListTeamRepositories(ctx, id, gitea.ListTeamRepositoriesOptions{ListOptions: listOptions(limit, page)})
|
|
||||||
})
|
|
||||||
return repos, headerOf(resp), err
|
|
||||||
})
|
})
|
||||||
return convertPage(repos, repositoryFrom), err
|
return convertPage(repos, repositoryFrom), err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ package services
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
|
||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -72,9 +71,8 @@ func (s Times) ListPage(ctx context.Context, opts TimeOptions) (Page[TrackedTime
|
|||||||
if opts.Before != nil {
|
if opts.Before != nil {
|
||||||
query.Before = *opts.Before
|
query.Before = *opts.Before
|
||||||
}
|
}
|
||||||
records, err := listPage(opts.Limit, opts.Page, func(limit, page int) ([]*gitea.TrackedTime, http.Header, error) {
|
records, err := callPage(ctx, s.Client, opts.Limit, opts.Page, func(ctx context.Context, c *gitea.Client, list gitea.ListOptions) ([]*gitea.TrackedTime, *gitea.Response, error) {
|
||||||
query.ListOptions = listOptions(limit, page)
|
query.ListOptions = list
|
||||||
records, resp, err := call(ctx, s.Client, func(ctx context.Context, c *gitea.Client) ([]*gitea.TrackedTime, *gitea.Response, error) {
|
|
||||||
if opts.Mine {
|
if opts.Mine {
|
||||||
return c.Issues.ListMyTrackedTimes(ctx, query)
|
return c.Issues.ListMyTrackedTimes(ctx, query)
|
||||||
}
|
}
|
||||||
@@ -87,8 +85,6 @@ func (s Times) ListPage(ctx context.Context, opts TimeOptions) (Page[TrackedTime
|
|||||||
}
|
}
|
||||||
return c.Issues.ListRepoTrackedTimes(ctx, owner, repo, query)
|
return c.Issues.ListRepoTrackedTimes(ctx, owner, repo, query)
|
||||||
})
|
})
|
||||||
return records, headerOf(resp), err
|
|
||||||
})
|
|
||||||
items := convertAll(records.Items, func(record *gitea.TrackedTime) TrackedTime { return trackedTimeFrom(record, s.Repository) })
|
items := convertAll(records.Items, func(record *gitea.TrackedTime) TrackedTime { return trackedTimeFrom(record, s.Repository) })
|
||||||
return Page[TrackedTime]{Items: items, More: records.More, Total: records.Total, Counted: records.Counted}, err
|
return Page[TrackedTime]{Items: items, More: records.More, Total: records.Total, Counted: records.Counted}, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import (
|
|||||||
"cmp"
|
"cmp"
|
||||||
"context"
|
"context"
|
||||||
"maps"
|
"maps"
|
||||||
"net/http"
|
|
||||||
"net/url"
|
"net/url"
|
||||||
"slices"
|
"slices"
|
||||||
"strconv"
|
"strconv"
|
||||||
@@ -109,9 +108,8 @@ func (s Webhooks) from(hook *gitea.Hook) Webhook {
|
|||||||
|
|
||||||
// List returns a page of hook metadata.
|
// List returns a page of hook metadata.
|
||||||
func (s Webhooks) List(ctx context.Context, limit, page int) (Page[Webhook], error) {
|
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, err := callPage(ctx, s.Client, limit, page, func(ctx context.Context, c *gitea.Client, list gitea.ListOptions) ([]*gitea.Hook, *gitea.Response, error) {
|
||||||
hooks, resp, err := call(ctx, s.Client, func(ctx context.Context, c *gitea.Client) ([]*gitea.Hook, *gitea.Response, error) {
|
opts := gitea.ListHooksOptions{ListOptions: list}
|
||||||
opts := gitea.ListHooksOptions{ListOptions: listOptions(limit, page)}
|
|
||||||
switch {
|
switch {
|
||||||
case s.Scope.Global:
|
case s.Scope.Global:
|
||||||
return c.Hooks.ListGlobalHooks(ctx, gitea.ListGlobalHooksOptions{ListOptions: opts.ListOptions})
|
return c.Hooks.ListGlobalHooks(ctx, gitea.ListGlobalHooksOptions{ListOptions: opts.ListOptions})
|
||||||
@@ -126,8 +124,6 @@ func (s Webhooks) List(ctx context.Context, limit, page int) (Page[Webhook], err
|
|||||||
}
|
}
|
||||||
return c.Hooks.ListRepoHooks(ctx, owner, name, opts)
|
return c.Hooks.ListRepoHooks(ctx, owner, name, opts)
|
||||||
})
|
})
|
||||||
return hooks, headerOf(resp), err
|
|
||||||
})
|
|
||||||
return convertPage(hooks, s.from), err
|
return convertPage(hooks, s.from), err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user