File size: 767 Bytes
fea99b3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | package entutils
import (
"github.com/samber/lo"
"github.com/openmeterio/openmeter/pkg/pagination"
"github.com/openmeterio/openmeter/pkg/slicesx"
)
func MapPaged[I, O any](paged pagination.Result[I], mapper func(I) O) pagination.Result[O] {
return pagination.Result[O]{
TotalCount: paged.TotalCount,
Items: lo.Map(paged.Items, func(item I, _ int) O {
return mapper(item)
}),
Page: paged.Page,
}
}
func MapPagedWithErr[I, O any](paged pagination.Result[I], mapper func(I) (O, error)) (pagination.Result[O], error) {
items, err := slicesx.MapWithErr(paged.Items, mapper)
if err != nil {
return pagination.Result[O]{}, err
}
return pagination.Result[O]{
TotalCount: paged.TotalCount,
Items: items,
Page: paged.Page,
}, nil
}
|