Skip to content

Commit 844ce0c

Browse files
feat(api): dedupe paginations
1 parent 0ce1c80 commit 844ce0c

File tree

1 file changed

+0
-195
lines changed

1 file changed

+0
-195
lines changed

packages/pagination/pagination.go

Lines changed: 0 additions & 195 deletions
Original file line numberDiff line numberDiff line change
@@ -365,104 +365,6 @@ func (r *EnvironmentClassesPageAutoPager[T]) Index() int {
365365
return r.run
366366
}
367367

368-
type EnvironmentClassesPage[T any] struct {
369-
EnvironmentClasses []T `json:"environment_classes"`
370-
Pagination EnvironmentClassesPagePagination `json:"pagination"`
371-
JSON environmentClassesPageJSON `json:"-"`
372-
cfg *requestconfig.RequestConfig
373-
res *http.Response
374-
}
375-
376-
// environmentClassesPageJSON contains the JSON metadata for the struct
377-
// [EnvironmentClassesPage[T]]
378-
type environmentClassesPageJSON struct {
379-
EnvironmentClasses apijson.Field
380-
Pagination apijson.Field
381-
raw string
382-
ExtraFields map[string]apijson.Field
383-
}
384-
385-
func (r *EnvironmentClassesPage[T]) UnmarshalJSON(data []byte) (err error) {
386-
return apijson.UnmarshalRoot(data, r)
387-
}
388-
389-
func (r environmentClassesPageJSON) RawJSON() string {
390-
return r.raw
391-
}
392-
393-
// GetNextPage returns the next page as defined by this pagination style. When
394-
// there is no next page, this function will return a 'nil' for the page value, but
395-
// will not return an error
396-
func (r *EnvironmentClassesPage[T]) GetNextPage() (res *EnvironmentClassesPage[T], err error) {
397-
next := r.Pagination.NextToken
398-
if len(next) == 0 {
399-
return nil, nil
400-
}
401-
cfg := r.cfg.Clone(r.cfg.Context)
402-
cfg.Apply(option.WithQuery("token", next))
403-
var raw *http.Response
404-
cfg.ResponseInto = &raw
405-
cfg.ResponseBodyInto = &res
406-
err = cfg.Execute()
407-
if err != nil {
408-
return nil, err
409-
}
410-
res.SetPageConfig(cfg, raw)
411-
return res, nil
412-
}
413-
414-
func (r *EnvironmentClassesPage[T]) SetPageConfig(cfg *requestconfig.RequestConfig, res *http.Response) {
415-
if r == nil {
416-
r = &EnvironmentClassesPage[T]{}
417-
}
418-
r.cfg = cfg
419-
r.res = res
420-
}
421-
422-
type EnvironmentClassesPageAutoPager[T any] struct {
423-
page *EnvironmentClassesPage[T]
424-
cur T
425-
idx int
426-
run int
427-
err error
428-
}
429-
430-
func NewEnvironmentClassesPageAutoPager[T any](page *EnvironmentClassesPage[T], err error) *EnvironmentClassesPageAutoPager[T] {
431-
return &EnvironmentClassesPageAutoPager[T]{
432-
page: page,
433-
err: err,
434-
}
435-
}
436-
437-
func (r *EnvironmentClassesPageAutoPager[T]) Next() bool {
438-
if r.page == nil || len(r.page.EnvironmentClasses) == 0 {
439-
return false
440-
}
441-
if r.idx >= len(r.page.EnvironmentClasses) {
442-
r.idx = 0
443-
r.page, r.err = r.page.GetNextPage()
444-
if r.err != nil || r.page == nil || len(r.page.EnvironmentClasses) == 0 {
445-
return false
446-
}
447-
}
448-
r.cur = r.page.EnvironmentClasses[r.idx]
449-
r.run += 1
450-
r.idx += 1
451-
return true
452-
}
453-
454-
func (r *EnvironmentClassesPageAutoPager[T]) Current() T {
455-
return r.cur
456-
}
457-
458-
func (r *EnvironmentClassesPageAutoPager[T]) Err() error {
459-
return r.err
460-
}
461-
462-
func (r *EnvironmentClassesPageAutoPager[T]) Index() int {
463-
return r.run
464-
}
465-
466368
type EnvironmentsPagePagination struct {
467369
NextToken string `json:"nextToken"`
468370
JSON environmentsPagePaginationJSON `json:"-"`
@@ -1412,103 +1314,6 @@ func (r *PoliciesPageAutoPager[T]) Index() int {
14121314
return r.run
14131315
}
14141316

1415-
type PoliciesPage[T any] struct {
1416-
Pagination PoliciesPagePagination `json:"pagination"`
1417-
Policies []T `json:"policies"`
1418-
JSON policiesPageJSON `json:"-"`
1419-
cfg *requestconfig.RequestConfig
1420-
res *http.Response
1421-
}
1422-
1423-
// policiesPageJSON contains the JSON metadata for the struct [PoliciesPage[T]]
1424-
type policiesPageJSON struct {
1425-
Pagination apijson.Field
1426-
Policies apijson.Field
1427-
raw string
1428-
ExtraFields map[string]apijson.Field
1429-
}
1430-
1431-
func (r *PoliciesPage[T]) UnmarshalJSON(data []byte) (err error) {
1432-
return apijson.UnmarshalRoot(data, r)
1433-
}
1434-
1435-
func (r policiesPageJSON) RawJSON() string {
1436-
return r.raw
1437-
}
1438-
1439-
// GetNextPage returns the next page as defined by this pagination style. When
1440-
// there is no next page, this function will return a 'nil' for the page value, but
1441-
// will not return an error
1442-
func (r *PoliciesPage[T]) GetNextPage() (res *PoliciesPage[T], err error) {
1443-
next := r.Pagination.NextToken
1444-
if len(next) == 0 {
1445-
return nil, nil
1446-
}
1447-
cfg := r.cfg.Clone(r.cfg.Context)
1448-
cfg.Apply(option.WithQuery("token", next))
1449-
var raw *http.Response
1450-
cfg.ResponseInto = &raw
1451-
cfg.ResponseBodyInto = &res
1452-
err = cfg.Execute()
1453-
if err != nil {
1454-
return nil, err
1455-
}
1456-
res.SetPageConfig(cfg, raw)
1457-
return res, nil
1458-
}
1459-
1460-
func (r *PoliciesPage[T]) SetPageConfig(cfg *requestconfig.RequestConfig, res *http.Response) {
1461-
if r == nil {
1462-
r = &PoliciesPage[T]{}
1463-
}
1464-
r.cfg = cfg
1465-
r.res = res
1466-
}
1467-
1468-
type PoliciesPageAutoPager[T any] struct {
1469-
page *PoliciesPage[T]
1470-
cur T
1471-
idx int
1472-
run int
1473-
err error
1474-
}
1475-
1476-
func NewPoliciesPageAutoPager[T any](page *PoliciesPage[T], err error) *PoliciesPageAutoPager[T] {
1477-
return &PoliciesPageAutoPager[T]{
1478-
page: page,
1479-
err: err,
1480-
}
1481-
}
1482-
1483-
func (r *PoliciesPageAutoPager[T]) Next() bool {
1484-
if r.page == nil || len(r.page.Policies) == 0 {
1485-
return false
1486-
}
1487-
if r.idx >= len(r.page.Policies) {
1488-
r.idx = 0
1489-
r.page, r.err = r.page.GetNextPage()
1490-
if r.err != nil || r.page == nil || len(r.page.Policies) == 0 {
1491-
return false
1492-
}
1493-
}
1494-
r.cur = r.page.Policies[r.idx]
1495-
r.run += 1
1496-
r.idx += 1
1497-
return true
1498-
}
1499-
1500-
func (r *PoliciesPageAutoPager[T]) Current() T {
1501-
return r.cur
1502-
}
1503-
1504-
func (r *PoliciesPageAutoPager[T]) Err() error {
1505-
return r.err
1506-
}
1507-
1508-
func (r *PoliciesPageAutoPager[T]) Index() int {
1509-
return r.run
1510-
}
1511-
15121317
type ProjectsPagePagination struct {
15131318
NextToken string `json:"nextToken"`
15141319
JSON projectsPagePaginationJSON `json:"-"`

0 commit comments

Comments
 (0)