Skip to content
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

Merged
merged 1 commit into from
Jul 27, 2024

Conversation

muntaxir4
Copy link
Contributor

@muntaxir4 muntaxir4 commented Jul 27, 2024

Description

Added common/paginate.ts and common/paginate.spec.ts under api.
The paginate method takes totalCount, realtiveUrl, query and defaultQuery.

  • The 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 and defaultQuery 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.
image
Passes paginate unit tests.
image

Developer's checklist

  • My PR follows the style guidelines of this project
  • I have performed a self-check on my work

If changes are made in the code:

  • I have followed the coding guidelines
  • My changes in code generate no new warnings
  • My changes are breaking another fix/feature of the project
  • I have added test cases to show that my feature works
  • I have added relevant screenshots in my PR
  • There are no UI/UX issues

Documentation Update

  • This PR requires an update to the documentation at docs.keyshade.xyz
  • I have made the necessary updates to the documentation, or no documentation changes are required.

@muntaxir4 muntaxir4 requested a review from rajdip-b as a code owner July 27, 2024 11:31
Copy link
Contributor

Failed to generate code suggestions for PR

@muntaxir4 muntaxir4 changed the title Fix: API, Create a paginate method fix: API, Create a paginate method Jul 27, 2024
@muntaxir4 muntaxir4 changed the title fix: API, Create a paginate method feat (API) : Create a paginate method Jul 27, 2024
@muntaxir4 muntaxir4 changed the title feat (API) : Create a paginate method feat(api): Create a paginate method Jul 27, 2024
@rajdip-b
Copy link
Member

Hey bro! Looks like you've already added this in #382. I'm closing this PR and this issue to the other PR.

@rajdip-b rajdip-b closed this Jul 27, 2024
@muntaxir4
Copy link
Contributor Author

Actually #382 is branched from this. Every other pagination is dependent on this @rajdip-b

@rajdip-b
Copy link
Member

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.

@rajdip-b rajdip-b reopened this Jul 27, 2024
Copy link
Contributor

Failed to generate code suggestions for PR

@muntaxir4
Copy link
Contributor Author

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.

Yeah sure. Thanks

@rajdip-b rajdip-b merged commit 90b2e14 into keyshade-xyz:develop Jul 27, 2024
4 checks passed
@muntaxir4
Copy link
Contributor Author

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.

By the way, why this isn't in the foss hack? The parent issue has the label. :')

@rajdip-b
Copy link
Member

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.

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.

rajdip-b pushed a commit that referenced this pull request Jul 29, 2024
rajdip-b pushed a commit that referenced this pull request Jul 29, 2024
## [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))
rajdip-b pushed a commit that referenced this pull request Jul 29, 2024
## [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))
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.

API: Create a paginate method
2 participants