Skip to content

Conversation

@StevanFreeborn
Copy link
Contributor

@StevanFreeborn StevanFreeborn commented Dec 31, 2024

Overview

This PR adds support for handling pagination of paged responses by leveraging the IAsyncEnumerable<T> interface. It is meant to close #19.

Note

This PR's branch was branched from a forked version of the SDK that includes the changes detailed in #18.

Changes

  • Features

    • Add GetAllApps method
    • Allow page response model to not require type parameter
    • Added method for getting all fields in app
    • Add GetAllReportsForAppAsync method
    • Add GetAllRecordsForAppAsync
    • Add GetAllRecordsByQueryAsync method
    • Begin to think through fluent API for new methods that return IAsyncEnumerable
    • Add fluent interface support for getting all app pages
    • Add SendAsync overload that allows supplying page size via action
    • Implement fluent interface for record paging with async enumerable
    • Add fluent interface for retrieving all report pages via async enumerable
  • Chores

    • Update test command
    • Add async interfaces as a dep
    • Add mockhttp as dep for mocking http responses
    • Remove unnecessary extension recommendation
    • Clean up settings for vs code users
    • Set lang version to 8 to support async streams
    • Whitelist words
  • Tests

    • Add test for using specific page size
    • Clean up test methods
    • Add method to support get page of items to share between helper methods
    • Update to .NET 9 and update deps
    • Fix copy pasta mistakes
    • Fix method names
    • Add test for getting all records for an app
    • Add test for send async overload
    • Add integration tests for fluent get all record pages by query
    • Add integration tests for retrieving all report pages
    • Add unit tests for fluent interface that cover the new async enumerable builders
  • Docs

    • Update README with section about methods that assist with pagination using IAsyncEnumerable
    • Fix xml comments
    • Add missing xml docs for new client internal method
    • Add missing xml comment
    • Add note about done for you pagination in the fluent interface

StevanFreeborn and others added 30 commits December 10, 2022 22:31
…n a field test data based on concrete classes and enums from the sdk itself. Instead the fields returned are generic objects that represent a field data set you'd get back from the api. This way I can add additional fields to the dataset that demonstrate the FormulaOutputType enum contains incorrect values for date and number.
…ller.cs that include a formula field with each possible output type. These additional fields cause by the GetFieldsAsync and GetFieldsForAppAsync tests in OnspringClientFieldTests to fail because the OutputType values of Numeric and DateAndTime can't be deserialized to any of the existing FormulaOutputType enum values.
…e which is the actual value that the Onspring API will return for formula fields with their output type configured as date/time.
…which is the actual value that the Onspring API will return for formula fields with their output type configured as numeric. NOTE: All tests now passing again.
…ue. fix: modified response data in test controller to respond with proper OutputType value for list formula field.
…est FieldsController to verify deserializing works for survey delegation field
@StevanFreeborn StevanFreeborn marked this pull request as ready for review December 31, 2024 20:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT]: Add "Done for You" Pagination

1 participant