| 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 | |
| } | |