-
Notifications
You must be signed in to change notification settings - Fork 41
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update resource list endpoint pagination to handle null and empty str…
…ing values better (#160) * Update the user package to handle all scenarios of pagination on nullable columns and scenarios where the before/after value is empty string * Update list middleware such that: 1. afterValue and/or beforeValue can be omitted when sorting by a column other than the default column in order to denote NULL. 2. optional values on ListParams are nullable (pointers) * Update features list tests * Dereference listParams.Query in fmt.Sprintf calls * Consolidate users empty string and default cases for beforeValue/afterValue * Update user queries to correctly handle queries where beforeId and/or beforeValue is passed When a `beforeId` or `beforeValue` is passed along with a limit, the results passed should be the immediate N objects where the `sortBy` value is < `beforeId` or `beforeValue`. For example, if we have a query with the following params: `?sortBy=id&sortOrder=ASC` we may get the following result set: `[1, 2, 3, 4, 5]`. If we then updated the query to be: `?sortBy=id&sortOrder=ASC&beforeId=4&limit=2`, we should expect the result set to be `[2, 3]` rather than `[1, 2]`. This commit updates the beforeId/beforeValue cases to invert the sort order when making the original query, then reversing the result set. * Update middleware to prevent beforeId/beforeValue from being passed with afterId/afterValue * Update user queries to handle nil `beforeValue`/`afterValue` for both sort orders and non-default sort bys * Update pricing tier queries to correct handle all cursor pagination cases * Update role queries to correct handle all cursor pagination cases * Update permission queries to correct handle all cursor pagination cases * Update tenant queries to correct handle all cursor pagination cases * Update object queries to correct handle all cursor pagination cases * Update feature queries to correct handle all cursor pagination cases * Update object type queries to correct handle all cursor pagination cases * Update error message * Remove nested if for nil `beforeValue`/`afterValue` cases * Update postgres queries to sort null objects correctly * Use transformed defaultSort in tenant and pricing-tier postgres queries --------- Co-authored-by: stanleyphu <[email protected]>
- Loading branch information
1 parent
725e35c
commit 3fa1cdc
Showing
53 changed files
with
4,237 additions
and
1,133 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
This file contains 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
Oops, something went wrong.