add advanced sort_by support#105
Open
rommelfreddy wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR extends sort_by support in the Content API client so the SDK can represent the full Storyblok sorting syntax
used by the Content Delivery API.
It adds support for:
SortBySortByCollection:float and:int`:nulls_firstand:nulls_lastStoryblok supports richer
sort_byexpressions than the SDK could previously express. In particular, the actualimplementation could not model:
name:desc,slug:asccontent.price:asc:floatpath:desc:nulls_firstThis PR brings the SDK in line with the documented API behavior.
StoriesRequestnow accepts:This keeps the API compact and breaking-change-free while allowing both simple and advanced sorting scenarios.
What Changed
SortBywas extended to support:Added new enums:
SortByDataTypeSortByNullsAdded
SortByCollectionto represent multiple sort definitionsUpdated StoriesRequest::toArray() so sort_by is generated from either:
Examples
Simple default property sorting
Results into
Numeric sorting
Results into
Null handling:
Results into
Multiple sorts:
Results into
Combined advanced sorts
Results into
Tests
Added/updated unit tests for:
SortBySortByCollectionStoriesRequestVerified cases include:
I didn't adjust the existing tests, because the changes are no breaking changes, so all other test still passes.