-
-
Notifications
You must be signed in to change notification settings - Fork 105
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(api): Create a paginate method #379
Conversation
Failed to generate code suggestions for PR |
Hey bro! Looks like you've already added this in #382. I'm closing this PR and this issue to the other PR. |
Yeah, I understand that. Okay so lets do this. I'm merging this since it is not dependent on foss hack. And, you can use this in your other PRs. |
Failed to generate code suggestions for PR |
Yeah sure. Thanks |
By the way, why this isn't in the foss hack? The parent issue has the label. :') |
Actually, since the feature implemented in this issue would be used by all the other issues, I marked it as non FOSS so that once the implementation is done I can quickly merge it. That way, others would be able to use this feature. |
## [2.3.0](v2.2.0...v2.3.0) (2024-07-29) ### 🚀 Features * **api:** Add pagination metadata to Environment module ([#382](#382)) ([9baa344](9baa344)) * **api:** Add pagination metadata to Event module ([#394](#394)) ([60010b4](60010b4)) * **api:** Add pagination metadata to Integration module ([#391](#391)) ([0372e36](0372e36)) * **api:** Add pagination metadata to Project module ([#393](#393)) ([bc274fd](bc274fd)) * **api:** Add pagination metadata to Secret module ([#389](#389)) ([c4cc667](c4cc667)) * **api:** Add pagination metadata to Variable module ([#390](#390)) ([be6aabf](be6aabf)) * **api:** Add pagination metadata to Workspace module ([#387](#387)) ([a08c924](a08c924)) * **api:** Add pagination metadata to Workspace Role module ([#388](#388)) ([d8e8f49](d8e8f49)) * **api:** Create a paginate method ([#379](#379)) ([09576f1](09576f1)) * **api:** Create endpoint for fetching all revisions of a [secure] ([#303](#303)) ([de2b602](de2b602)) * **api:** Create endpoint for fetching all revisions of a variable ([#304](#304)) ([9abddc1](9abddc1)) * **cli:** Improved the DX for list profile ([#334](#334)) ([6bff496](6bff496)) * **platform:** Add warning sonner toast for invalid otp ([#335](#335)) ([21513f5](21513f5)) ### 🐛 Bug Fixes * **cli:** Added parent directory check ([#359](#359)) ([538ea7f](538ea7f)) * **platform:** Platform types fixes ([#374](#374)) ([8e9d9ff](8e9d9ff)) ### 📚 Documentation * Added docker details in setting-things-up.md ([#358](#358)) ([ed5093a](ed5093a)) * Update postman workspace link ([d6aba27](d6aba27)) * Updated env and cli docs ([1213d2a](1213d2a)) ### 🔧 Miscellaneous Chores * Added next backend url in .env.example ([5695254](5695254)) * **api-client:** Added pagination structure ([a70e957](a70e957)) * **api-client:** Fixed test script ([ad70819](ad70819)) * **api-client:** Removed try-catch from tests in environment ([a64e48c](a64e48c)) * **api:** Add user cache for optimization ([#386](#386)) ([8d730b5](8d730b5)) * **api:** Alter cache rehydration interval ([f5f9eec](f5f9eec)) * **api:** Fixed naming error in variable controller ([0c5a380](0c5a380)) * **api:** Improve handling of edge cases for paginate module ([#402](#402)) ([8591487](8591487)) * **api:** Minor updates to user service ([249d778](249d778)) * **api:** Skip workspace creation when user is admin ([#376](#376)) ([13f6c59](13f6c59)) * **ci:** Add docker check ([#383](#383)) ([3119001](3119001)) * **ci:** Add names to CI files ([1a7e5f6](1a7e5f6)) * **ci:** Add validate CLI pipeline ([#373](#373)) ([a91df6c](a91df6c)) * **ci:** Adding validate pipeline ([#372](#372)) ([23cf3b3](23cf3b3)) * **ci:** Disabled platform and api deployments ([74d601a](74d601a)) * **ci:** Fixed deployment scripts ([12e35db](12e35db)) * **ci:** Fixed platform script ([d783f2a](d783f2a)) * **CI:** Include migration deployment in API deploy pipeline ([dbd5222](dbd5222)) * **CI:** Separated deployment and docker build jobs ([090e193](090e193)) * **CI:** Setup inter-job dependency ([1756727](1756727)) * **ci:** Update auto-assign.yaml ([#375](#375)) ([91e0ec1](91e0ec1)) * **cli:** Changed objects to classes ([#306](#306)) ([c83f2db](c83f2db)) * Removed Minio config ([8feb83a](8feb83a)) * Updated deployment scripts and added health check in platform ([fcc1c3f](fcc1c3f)) ### 🔨 Code Refactoring * **api:** Updated path of some endpoints in project controller ([9502678](9502678)) * **api:** Updated Redis provider ([33491a1](33491a1))
## [2.3.0](v2.2.0...v2.3.0) (2024-07-29) ### 🚀 Features * **api:** Add pagination metadata to Environment module ([#382](#382)) ([9baa344](9baa344)) * **api:** Add pagination metadata to Event module ([#394](#394)) ([60010b4](60010b4)) * **api:** Add pagination metadata to Integration module ([#391](#391)) ([0372e36](0372e36)) * **api:** Add pagination metadata to Project module ([#393](#393)) ([bc274fd](bc274fd)) * **api:** Add pagination metadata to Secret module ([#389](#389)) ([c4cc667](c4cc667)) * **api:** Add pagination metadata to Variable module ([#390](#390)) ([be6aabf](be6aabf)) * **api:** Add pagination metadata to Workspace module ([#387](#387)) ([a08c924](a08c924)) * **api:** Add pagination metadata to Workspace Role module ([#388](#388)) ([d8e8f49](d8e8f49)) * **api:** Create a paginate method ([#379](#379)) ([09576f1](09576f1)) * **api:** Create endpoint for fetching all revisions of a [secure] ([#303](#303)) ([de2b602](de2b602)) * **api:** Create endpoint for fetching all revisions of a variable ([#304](#304)) ([9abddc1](9abddc1)) * **cli:** Improved the DX for list profile ([#334](#334)) ([6bff496](6bff496)) * **platform:** Add warning sonner toast for invalid otp ([#335](#335)) ([21513f5](21513f5)) ### 🐛 Bug Fixes * **cli:** Added parent directory check ([#359](#359)) ([538ea7f](538ea7f)) * **platform:** Platform types fixes ([#374](#374)) ([8e9d9ff](8e9d9ff)) ### 📚 Documentation * Added docker details in setting-things-up.md ([#358](#358)) ([ed5093a](ed5093a)) * Update postman workspace link ([d6aba27](d6aba27)) * Updated env and cli docs ([1213d2a](1213d2a)) ### 🔧 Miscellaneous Chores * Added next backend url in .env.example ([5695254](5695254)) * **api-client:** Added pagination structure ([a70e957](a70e957)) * **api-client:** Fixed test script ([ad70819](ad70819)) * **api-client:** Removed try-catch from tests in environment ([a64e48c](a64e48c)) * **api:** Add user cache for optimization ([#386](#386)) ([8d730b5](8d730b5)) * **api:** Alter cache rehydration interval ([f5f9eec](f5f9eec)) * **api:** Fixed naming error in variable controller ([0c5a380](0c5a380)) * **api:** Improve handling of edge cases for paginate module ([#402](#402)) ([8591487](8591487)) * **api:** Minor updates to user service ([249d778](249d778)) * **api:** Skip workspace creation when user is admin ([#376](#376)) ([13f6c59](13f6c59)) * **ci:** Add docker check ([#383](#383)) ([3119001](3119001)) * **ci:** Add names to CI files ([1a7e5f6](1a7e5f6)) * **ci:** Add validate CLI pipeline ([#373](#373)) ([a91df6c](a91df6c)) * **ci:** Adding validate pipeline ([#372](#372)) ([23cf3b3](23cf3b3)) * **ci:** Disabled platform and api deployments ([74d601a](74d601a)) * **ci:** Fixed deployment scripts ([12e35db](12e35db)) * **ci:** Fixed platform script ([d783f2a](d783f2a)) * **CI:** Include migration deployment in API deploy pipeline ([dbd5222](dbd5222)) * **CI:** Separated deployment and docker build jobs ([090e193](090e193)) * **CI:** Setup inter-job dependency ([1756727](1756727)) * **ci:** Update auto-assign.yaml ([#375](#375)) ([91e0ec1](91e0ec1)) * **cli:** Changed objects to classes ([#306](#306)) ([c83f2db](c83f2db)) * Removed Minio config ([8feb83a](8feb83a)) * Updated deployment scripts and added health check in platform ([fcc1c3f](fcc1c3f)) ### 🔨 Code Refactoring * **api:** Updated path of some endpoints in project controller ([9502678](9502678)) * **api:** Updated Redis provider ([33491a1](33491a1))
Description
Added common/paginate.ts and common/paginate.spec.ts under api.
The paginate method takes totalCount, realtiveUrl, query and defaultQuery.
totalCount
is usually calculated by the calling method using prisma.[table].count() without any filters like page and limit.relativeUrl
is the the endpoint for a service function. Eg:/workspace-role/${workspaceId}/all
query
belongs to QueryOptions necessary to do pagination anddefaultQuery
are extra queries that could be provided.Fixes #345
Dependencies
Mention any dependencies/packages used
Future Improvements
Mention any improvements to be done in future related to any file/feature
Mentions
Mention and tag the people
Screenshots of relevant screens
1 Test Suite and 4 Test Cases are added.
Passes paginate unit tests.
Developer's checklist
If changes are made in the code:
Documentation Update