diff --git a/internal/cmd/admin_groups.go b/internal/cmd/admin_groups.go index ffa51fc..3dc7612 100644 --- a/internal/cmd/admin_groups.go +++ b/internal/cmd/admin_groups.go @@ -58,19 +58,9 @@ func (c *AdminGroupsListCmd) Run(ctx context.Context, flags *RootFlags) error { return resp.Groups, resp.NextPageToken, nil } - var groups []*admin.Group - nextPageToken := "" - if c.All { - all, collectErr := collectAllPages(c.Page, fetch) - if collectErr != nil { - return collectErr - } - groups = all - } else { - groups, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + groups, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { @@ -176,19 +166,9 @@ func (c *AdminGroupsMembersListCmd) Run(ctx context.Context, flags *RootFlags) e return resp.Members, resp.NextPageToken, nil } - var members []*admin.Member - nextPageToken := "" - if c.All { - all, collectErr := collectAllPages(c.Page, fetch) - if collectErr != nil { - return collectErr - } - members = all - } else { - members, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + members, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { diff --git a/internal/cmd/admin_users.go b/internal/cmd/admin_users.go index afa6b85..73c5207 100644 --- a/internal/cmd/admin_users.go +++ b/internal/cmd/admin_users.go @@ -60,19 +60,9 @@ func (c *AdminUsersListCmd) Run(ctx context.Context, flags *RootFlags) error { return resp.Users, resp.NextPageToken, nil } - var users []*admin.User - nextPageToken := "" - if c.All { - all, collectErr := collectAllPages(c.Page, fetch) - if collectErr != nil { - return collectErr - } - users = all - } else { - users, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + users, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { diff --git a/internal/cmd/calendar_list.go b/internal/cmd/calendar_list.go index f7eb8eb..43fa4db 100644 --- a/internal/cmd/calendar_list.go +++ b/internal/cmd/calendar_list.go @@ -51,20 +51,9 @@ func listCalendarEvents(ctx context.Context, svc *calendar.Service, calendarID, return resp.Items, resp.NextPageToken, nil } - var items []*calendar.Event - nextPageToken := "" - if allPages { - all, err := collectAllPages(page, fetch) - if err != nil { - return err - } - items = all - } else { - var err error - items, nextPageToken, err = fetch(page) - if err != nil { - return err - } + items, nextPageToken, err := loadPagedItems(page, allPages, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { if err := outfmt.WriteJSON(ctx, os.Stdout, map[string]any{ @@ -164,21 +153,10 @@ func listCalendarIDsEvents(ctx context.Context, svc *calendar.Service, calendarI return resp.Items, resp.NextPageToken, nil } - var events []*calendar.Event - var err error - if allPages { - allEvents, collectErr := collectAllPages(page, fetch) - if collectErr != nil { - u.Err().Printf("calendar %s: %v", calID, collectErr) - continue - } - events = allEvents - } else { - events, _, err = fetch(page) - if err != nil { - u.Err().Printf("calendar %s: %v", calID, err) - continue - } + events, _, err := loadPagedItems(page, allPages, fetch) + if err != nil { + u.Err().Printf("calendar %s: %v", calID, err) + continue } for _, e := range events { diff --git a/internal/cmd/calendar_list_cmds.go b/internal/cmd/calendar_list_cmds.go index beec150..81c9466 100644 --- a/internal/cmd/calendar_list_cmds.go +++ b/internal/cmd/calendar_list_cmds.go @@ -43,19 +43,9 @@ func (c *CalendarCalendarsCmd) Run(ctx context.Context, flags *RootFlags) error return r.Items, r.NextPageToken, nil } - var items []*calendar.CalendarListEntry - nextPageToken := "" - if c.All { - all, collectErr := collectAllPages(c.Page, fetch) - if collectErr != nil { - return collectErr - } - items = all - } else { - items, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + items, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { if err := outfmt.WriteJSON(ctx, os.Stdout, map[string]any{ @@ -173,19 +163,9 @@ func (c *CalendarAclCmd) Run(ctx context.Context, flags *RootFlags) error { return r.Items, r.NextPageToken, nil } - var items []*calendar.AclRule - nextPageToken := "" - if c.All { - all, collectErr := collectAllPages(c.Page, fetch) - if collectErr != nil { - return collectErr - } - items = all - } else { - items, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + items, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { if err := outfmt.WriteJSON(ctx, os.Stdout, map[string]any{ diff --git a/internal/cmd/calendar_users.go b/internal/cmd/calendar_users.go index a47aaeb..2bbbe2e 100644 --- a/internal/cmd/calendar_users.go +++ b/internal/cmd/calendar_users.go @@ -61,20 +61,9 @@ func (c *CalendarUsersCmd) Run(ctx context.Context, flags *RootFlags) error { return resp.People, resp.NextPageToken, nil } - var peopleList []*people.Person - nextPageToken := "" - if c.All { - all, err := collectAllPages(c.Page, fetch) - if err != nil { - return err - } - peopleList = all - } else { - var err error - peopleList, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + peopleList, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { diff --git a/internal/cmd/chat_messages.go b/internal/cmd/chat_messages.go index 5200459..dd89450 100644 --- a/internal/cmd/chat_messages.go +++ b/internal/cmd/chat_messages.go @@ -90,20 +90,9 @@ func (c *ChatMessagesListCmd) Run(ctx context.Context, flags *RootFlags) error { return resp.Messages, resp.NextPageToken, nil } - var messages []*chat.Message - nextPageToken := "" - if c.All { - all, err := collectAllPages(c.Page, fetch) - if err != nil { - return err - } - messages = all - } else { - var err error - messages, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + messages, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { diff --git a/internal/cmd/chat_reactions.go b/internal/cmd/chat_reactions.go index 5e26e65..12b8574 100644 --- a/internal/cmd/chat_reactions.go +++ b/internal/cmd/chat_reactions.go @@ -127,20 +127,9 @@ func (c *ChatMessagesReactionsListCmd) Run(ctx context.Context, flags *RootFlags return resp.Reactions, resp.NextPageToken, nil } - var reactions []*chat.Reaction - nextPageToken := "" - if c.All { - all, err := collectAllPages(c.Page, fetch) - if err != nil { - return err - } - reactions = all - } else { - var err error - reactions, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + reactions, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { diff --git a/internal/cmd/chat_spaces.go b/internal/cmd/chat_spaces.go index 178c25f..c736586 100644 --- a/internal/cmd/chat_spaces.go +++ b/internal/cmd/chat_spaces.go @@ -52,20 +52,9 @@ func (c *ChatSpacesListCmd) Run(ctx context.Context, flags *RootFlags) error { return resp.Spaces, resp.NextPageToken, nil } - var spaces []*chat.Space - nextPageToken := "" - if c.All { - all, err := collectAllPages(c.Page, fetch) - if err != nil { - return err - } - spaces = all - } else { - var err error - spaces, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + spaces, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { diff --git a/internal/cmd/chat_threads.go b/internal/cmd/chat_threads.go index 9278f95..7497f79 100644 --- a/internal/cmd/chat_threads.go +++ b/internal/cmd/chat_threads.go @@ -59,20 +59,9 @@ func (c *ChatThreadsListCmd) Run(ctx context.Context, flags *RootFlags) error { return resp.Messages, resp.NextPageToken, nil } - var messages []*chat.Message - nextPageToken := "" - if c.All { - all, err := collectAllPages(c.Page, fetch) - if err != nil { - return err - } - messages = all - } else { - var err error - messages, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + messages, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } threads := make([]*chatMessageThreadItem, 0, len(messages)) diff --git a/internal/cmd/classroom_courses.go b/internal/cmd/classroom_courses.go index c1e5ecd..abe93ef 100644 --- a/internal/cmd/classroom_courses.go +++ b/internal/cmd/classroom_courses.go @@ -72,20 +72,9 @@ func (c *ClassroomCoursesListCmd) Run(ctx context.Context, flags *RootFlags) err return resp.Courses, resp.NextPageToken, nil } - var courses []*classroom.Course - nextPageToken := "" - if c.All { - all, err := collectAllPages(c.Page, fetch) - if err != nil { - return err - } - courses = all - } else { - var err error - courses, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + courses, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { diff --git a/internal/cmd/classroom_coursework.go b/internal/cmd/classroom_coursework.go index 3062546..e47e6db 100644 --- a/internal/cmd/classroom_coursework.go +++ b/internal/cmd/classroom_coursework.go @@ -71,7 +71,7 @@ func (c *ClassroomCourseworkListCmd) Run(ctx context.Context, flags *RootFlags) var coursework []*classroom.CourseWork var nextPageToken string if c.All { - all, err := collectAllPages(c.Page, fetch) + all, _, err := loadPagedItems(c.Page, true, fetch) if err != nil { return wrapClassroomError(err) } diff --git a/internal/cmd/classroom_guardians.go b/internal/cmd/classroom_guardians.go index 94dde8c..448ad15 100644 --- a/internal/cmd/classroom_guardians.go +++ b/internal/cmd/classroom_guardians.go @@ -58,20 +58,9 @@ func (c *ClassroomGuardiansListCmd) Run(ctx context.Context, flags *RootFlags) e return resp.Guardians, resp.NextPageToken, nil } - var guardians []*classroom.Guardian - nextPageToken := "" - if c.All { - all, err := collectAllPages(c.Page, fetch) - if err != nil { - return err - } - guardians = all - } else { - var err error - guardians, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + guardians, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { @@ -245,20 +234,9 @@ func (c *ClassroomGuardianInvitesListCmd) Run(ctx context.Context, flags *RootFl return resp.GuardianInvitations, resp.NextPageToken, nil } - var invitations []*classroom.GuardianInvitation - nextPageToken := "" - if c.All { - all, err := collectAllPages(c.Page, fetch) - if err != nil { - return err - } - invitations = all - } else { - var err error - invitations, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + invitations, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { diff --git a/internal/cmd/classroom_invitations.go b/internal/cmd/classroom_invitations.go index 68571d1..83b2b8b 100644 --- a/internal/cmd/classroom_invitations.go +++ b/internal/cmd/classroom_invitations.go @@ -60,20 +60,9 @@ func (c *ClassroomInvitationsListCmd) Run(ctx context.Context, flags *RootFlags) return resp.Invitations, resp.NextPageToken, nil } - var invitations []*classroom.Invitation - nextPageToken := "" - if c.All { - all, err := collectAllPages(c.Page, fetch) - if err != nil { - return err - } - invitations = all - } else { - var err error - invitations, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + invitations, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { diff --git a/internal/cmd/classroom_list_helpers.go b/internal/cmd/classroom_list_helpers.go index ea42178..24990e7 100644 --- a/internal/cmd/classroom_list_helpers.go +++ b/internal/cmd/classroom_list_helpers.go @@ -10,14 +10,7 @@ import ( ) func fetchClassroomPagedList[T any](all bool, page string, fetch func(string) ([]*T, string, error)) ([]*T, string, error) { - if all { - items, err := collectAllPages(page, fetch) - if err != nil { - return nil, "", err - } - return items, "", nil - } - return fetch(page) + return loadPagedItems(page, all, fetch) } func writeClassroomPagedList[T any]( diff --git a/internal/cmd/classroom_materials.go b/internal/cmd/classroom_materials.go index 701db8e..92446c2 100644 --- a/internal/cmd/classroom_materials.go +++ b/internal/cmd/classroom_materials.go @@ -70,7 +70,7 @@ func (c *ClassroomMaterialsListCmd) Run(ctx context.Context, flags *RootFlags) e var materials []*classroom.CourseWorkMaterial var nextPageToken string if c.All { - all, err := collectAllPages(c.Page, fetch) + all, _, err := loadPagedItems(c.Page, true, fetch) if err != nil { return wrapClassroomError(err) } diff --git a/internal/cmd/classroom_rosters.go b/internal/cmd/classroom_rosters.go index 115edea..40057c7 100644 --- a/internal/cmd/classroom_rosters.go +++ b/internal/cmd/classroom_rosters.go @@ -55,20 +55,9 @@ func (c *ClassroomStudentsListCmd) Run(ctx context.Context, flags *RootFlags) er return resp.Students, resp.NextPageToken, nil } - var students []*classroom.Student - nextPageToken := "" - if c.All { - all, err := collectAllPages(c.Page, fetch) - if err != nil { - return err - } - students = all - } else { - var err error - students, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + students, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { @@ -287,20 +276,9 @@ func (c *ClassroomTeachersListCmd) Run(ctx context.Context, flags *RootFlags) er return resp.Teachers, resp.NextPageToken, nil } - var teachers []*classroom.Teacher - nextPageToken := "" - if c.All { - all, err := collectAllPages(c.Page, fetch) - if err != nil { - return err - } - teachers = all - } else { - var err error - teachers, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + teachers, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { @@ -514,17 +492,9 @@ func (c *ClassroomRosterCmd) Run(ctx context.Context, flags *RootFlags) error { } return resp.Students, resp.NextPageToken, nil } - if c.All { - all, collectErr := collectAllPages(c.Page, fetch) - if collectErr != nil { - return collectErr - } - students = all - } else { - students, studentsNextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + students, studentsNextPageToken, err = loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } } if includeTeachers { @@ -539,17 +509,9 @@ func (c *ClassroomRosterCmd) Run(ctx context.Context, flags *RootFlags) error { } return resp.Teachers, resp.NextPageToken, nil } - if c.All { - all, collectErr := collectAllPages(c.Page, fetch) - if collectErr != nil { - return collectErr - } - teachers = all - } else { - teachers, teachersNextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + teachers, teachersNextPageToken, err = loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } } diff --git a/internal/cmd/classroom_submissions.go b/internal/cmd/classroom_submissions.go index c835a3e..8c0cda7 100644 --- a/internal/cmd/classroom_submissions.go +++ b/internal/cmd/classroom_submissions.go @@ -86,20 +86,9 @@ func (c *ClassroomSubmissionsListCmd) Run(ctx context.Context, flags *RootFlags) return resp.StudentSubmissions, resp.NextPageToken, nil } - var submissions []*classroom.StudentSubmission - nextPageToken := "" - if c.All { - all, err := collectAllPages(c.Page, fetch) - if err != nil { - return err - } - submissions = all - } else { - var err error - submissions, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + submissions, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { diff --git a/internal/cmd/contacts_directory.go b/internal/cmd/contacts_directory.go index 08cb27b..c84d01a 100644 --- a/internal/cmd/contacts_directory.go +++ b/internal/cmd/contacts_directory.go @@ -62,20 +62,9 @@ func (c *ContactsDirectoryListCmd) Run(ctx context.Context, flags *RootFlags) er return resp.People, resp.NextPageToken, nil } - var peopleList []*people.Person - nextPageToken := "" - if c.All { - all, err := collectAllPages(c.Page, fetch) - if err != nil { - return err - } - peopleList = all - } else { - var err error - peopleList, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + peopleList, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { type item struct { @@ -169,20 +158,9 @@ func (c *ContactsDirectorySearchCmd) Run(ctx context.Context, flags *RootFlags) return resp.People, resp.NextPageToken, nil } - var peopleList []*people.Person - nextPageToken := "" - if c.All { - all, err := collectAllPages(c.Page, fetch) - if err != nil { - return err - } - peopleList = all - } else { - var err error - peopleList, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + peopleList, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { type item struct { @@ -275,20 +253,9 @@ func (c *ContactsOtherListCmd) Run(ctx context.Context, flags *RootFlags) error return resp.OtherContacts, resp.NextPageToken, nil } - var contacts []*people.Person - nextPageToken := "" - if c.All { - all, err := collectAllPages(c.Page, fetch) - if err != nil { - return err - } - contacts = all - } else { - var err error - contacts, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + contacts, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { type item struct { diff --git a/internal/cmd/gmail_history.go b/internal/cmd/gmail_history.go index c64e218..978d7f1 100644 --- a/internal/cmd/gmail_history.go +++ b/internal/cmd/gmail_history.go @@ -51,20 +51,9 @@ func (c *GmailHistoryCmd) Run(ctx context.Context, flags *RootFlags) error { historyIDs := collectHistoryMessageIDs(resp) return historyIDs.FetchIDs, resp.NextPageToken, nil } - var ids []string - nextPageToken := "" - if c.All { - all, err := collectAllPages(c.Page, fetch) - if err != nil { - return err - } - ids = all - } else { - var err error - ids, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + ids, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { if err := outfmt.WriteJSON(ctx, os.Stdout, map[string]any{ diff --git a/internal/cmd/groups.go b/internal/cmd/groups.go index f04ae6d..5e93a2a 100644 --- a/internal/cmd/groups.go +++ b/internal/cmd/groups.go @@ -67,20 +67,9 @@ func (c *GroupsListCmd) Run(ctx context.Context, flags *RootFlags) error { return resp.Memberships, resp.NextPageToken, nil } - var memberships []*cloudidentity.GroupRelation - nextPageToken := "" - if c.All { - all, err := collectAllPages(c.Page, fetch) - if err != nil { - return err - } - memberships = all - } else { - var err error - memberships, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + memberships, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { @@ -219,20 +208,9 @@ func (c *GroupsMembersCmd) Run(ctx context.Context, flags *RootFlags) error { return resp.Memberships, resp.NextPageToken, nil } - var memberships []*cloudidentity.Membership - nextPageToken := "" - if c.All { - all, err := collectAllPages(c.Page, fetch) - if err != nil { - return err - } - memberships = all - } else { - var err error - memberships, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + memberships, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { diff --git a/internal/cmd/keep.go b/internal/cmd/keep.go index 9ed5bf8..efff247 100644 --- a/internal/cmd/keep.go +++ b/internal/cmd/keep.go @@ -60,20 +60,9 @@ func (c *KeepListCmd) Run(ctx context.Context, flags *RootFlags, keep *KeepCmd) return resp.Notes, resp.NextPageToken, nil } - var notes []*keepapi.Note - nextPageToken := "" - if c.All { - all, err := collectAllPages(c.Page, fetch) - if err != nil { - return err - } - notes = all - } else { - var err error - notes, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + notes, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { diff --git a/internal/cmd/people_profile.go b/internal/cmd/people_profile.go index 0e75ba8..96a25eb 100644 --- a/internal/cmd/people_profile.go +++ b/internal/cmd/people_profile.go @@ -109,20 +109,9 @@ func (c *PeopleSearchCmd) Run(ctx context.Context, flags *RootFlags) error { return resp.People, resp.NextPageToken, nil } - var peopleList []*people.Person - nextPageToken := "" - if c.All { - all, err := collectAllPages(c.Page, fetch) - if err != nil { - return err - } - peopleList = all - } else { - var err error - peopleList, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + peopleList, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { diff --git a/internal/cmd/tasks_items.go b/internal/cmd/tasks_items.go index af4ca04..efae39f 100644 --- a/internal/cmd/tasks_items.go +++ b/internal/cmd/tasks_items.go @@ -89,20 +89,9 @@ func (c *TasksListCmd) Run(ctx context.Context, flags *RootFlags) error { return resp.Items, resp.NextPageToken, nil } - var items []*tasks.Task - nextPageToken := "" - if c.All { - all, err := collectAllPages(c.Page, fetch) - if err != nil { - return err - } - items = all - } else { - var err error - items, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + items, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) { diff --git a/internal/cmd/tasks_lists.go b/internal/cmd/tasks_lists.go index ed23fcd..c28f235 100644 --- a/internal/cmd/tasks_lists.go +++ b/internal/cmd/tasks_lists.go @@ -48,20 +48,9 @@ func (c *TasksListsListCmd) Run(ctx context.Context, flags *RootFlags) error { return resp.Items, resp.NextPageToken, nil } - var items []*tasks.TaskList - nextPageToken := "" - if c.All { - all, err := collectAllPages(c.Page, fetch) - if err != nil { - return err - } - items = all - } else { - var err error - items, nextPageToken, err = fetch(c.Page) - if err != nil { - return err - } + items, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch) + if err != nil { + return err } if outfmt.IsJSON(ctx) {