override suspend fun load()

in app/src/main/java/co/elastic/apm/opbeans/modules/customers/data/pager/CustomerPagingSource.kt [30:42]


    override suspend fun load(params: LoadParams<Int>): LoadResult<Int, Customer> {
        val offset = params.key ?: 0
        val amount = params.loadSize
        val prevKey = if (offset == 0) null else max(0, offset - amount)

        return try {
            val customers = customerRepository.getSetOfCustomers(offset, amount)
            val nextKey = if (customers.size == amount) offset + amount else null
            LoadResult.Page(customers, prevKey, nextKey)
        } catch (e: Throwable) {
            LoadResult.Error(e)
        }
    }