-
-
Notifications
You must be signed in to change notification settings - Fork 114
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): Add resend otp implementation #445
feat(api): Add resend otp implementation #445
Conversation
PR Reviewer Guide 🔍
|
PR Code Suggestions ✨
|
Fixes the throttle feature and moved the env variables to env.schema for validation of the env variables needed for throttle configuration.
@rajdip-b Can you review this PR again? As of now the throttler is working as expected. |
Yeah, your changes are valid. |
This comment has been minimized.
This comment has been minimized.
You PR still has merge conflicts. Once they are removed, we can merge this |
Sure will do |
|
The current auth.controller.spec.ts wasn't working with the throttler Guard, so created default/empty mocks which can be modified further.
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #445 +/- ##
===========================================
- Coverage 91.71% 87.64% -4.08%
===========================================
Files 111 105 -6
Lines 2510 2743 +233
Branches 469 415 -54
===========================================
+ Hits 2302 2404 +102
- Misses 208 339 +131
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
Co-authored-by: Rajdip Bhattacharya <[email protected]>
## [2.6.0](v2.5.0...v2.6.0) (2024-10-24) ### 🚀 Features * **api:** Add icon and remove description field from workspace ([#435](#435)) ([a99c0db](a99c0db)) * **api-client:** Added workspace-membership and related tests ([#452](#452)) ([6a1c091](6a1c091)) * **api-client:** Create controller for User module ([#484](#484)) ([f9d8e83](f9d8e83)) * **api:** Add prod env schema in env file ([#436](#436)) ([21c3004](21c3004)) * **api:** Add resend otp implementation ([#445](#445)) ([4dc6aa1](4dc6aa1)) * **api:** Fetch total count of environments, [secure]s and variables in project ([#434](#434)) ([0c9e50a](0c9e50a)) * **api:** Replace `projectId` with `name` and `slug` in workspace-role response. ([#432](#432)) ([af06071](af06071)) * **cli:** Add functionality to operate on Secrets ([#504](#504)) ([1b4bf2f](1b4bf2f)) * **cli:** Add project command ([#451](#451)) ([70448e1](70448e1)) * **cli:** Add workspace operations ([#441](#441)) ([ed38d22](ed38d22)) * **cli:** implement commands to get, list, update, and delete, workspace roles ([#469](#469)) ([957ea8d](957ea8d)) * **cli:** Implemented pagination support ([#453](#453)) ([feb1806](feb1806)) * **cli:** Secret scan ([#438](#438)) ([85cb8ab](85cb8ab)) * **cli:** Update environment command outputs ([f4af874](f4af874)) * **platform:** Clearing email field after waitlisting the user email ([#481](#481)) ([256d659](256d659)) * Remove project IDs from workspace role export data and update tests ([#448](#448)) ([8fdb328](8fdb328)) * **web:** Configured extra check for waitlisted users already in the list and created toast message for them ([#492](#492)) ([2ddd0ef](2ddd0ef)) * **web:** show the toast only when email add successfully ([#490](#490)) ([783c411](783c411)) ### 🐛 Bug Fixes * **api,api-client:** Add environmentSlug in multiple places across the variable module ([#468](#468)) ([d970aff](d970aff)) * **api:** Replace the id with slug in the global-search service ([#455](#455)) ([74804b1](74804b1)) * **platform:** Fixed duplicate Google Logo UI fix ([#450](#450)) ([fb0d6f7](fb0d6f7)) * resolve footer website name cut-off or overlap issue ([#444](#444)) ([fe03ba2](fe03ba2)) * **web:** Horizontal Scrolling issue on the website ([#440](#440)) ([655177b](655177b)) ### 📚 Documentation * Add documentation for environment in CLI ([#462](#462)) ([dad7394](dad7394)) * Add documentation for project in CLI ([#466](#466)) ([341fb32](341fb32)) * Add documentation for scan in CLI ([#461](#461)) ([72281e6](72281e6)) * Add documentation for workspace command ([#464](#464)) ([4aad8a2](4aad8a2)) * Add instructions for resetting the local Prisma database ([#495](#495)) ([#501](#501)) ([b07ea17](b07ea17)) * Added docker support documentation ([#465](#465)) ([bc04be4](bc04be4)) * Added documentation for running the platform ([#473](#473)) ([8b8386b](8b8386b)) * Added missing mappings to pages ([5de9fd8](5de9fd8)) * Fix Documentation Hyperlink and update expired Discord invite link ([#496](#496)) ([5a10e39](5a10e39)) * Updated CLI docs ([#460](#460)) ([c7e0f13](c7e0f13)) ### 🔧 Miscellaneous Chores * Add more logging to Sentry init ([#470](#470)) ([de4925d](de4925d)) * **api:** Optimise API docker image size ([#360](#360)) ([ea40dc1](ea40dc1)) * **api:** Updated lockfile ([a968e78](a968e78)) * **CI:** Add [secure] scan validation ([f441262](f441262)) * **cli:** Update controller invocation in environment commands ([#477](#477)) ([596bd1a](596bd1a)) * Minor changes to variables ([fe01ca6](fe01ca6)) * **[secure]-scan:** Failing lint issues ([#507](#507)) ([48f45df](48f45df)) * **[secure]-scan:** Formatted files ([5884833](5884833)) * Update .env.example ([70ad4f7](70ad4f7)) * Updated scripts ([9eb76a7](9eb76a7)) * **web:** email validation ([#487](#487)) ([e8e737a](e8e737a))
🎉 This PR is included in version 2.6.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
User description
Description
Base implemented by using present functions to resend otp to the user.
Tried using the already present sendotp function. But as the errors returned are different in the resend otp took few other functions and called those instead of calling sendOtp().
Fixes #326
Dependencies
Mention any dependencies/packages used
Future Improvements
Developer's checklist
If changes are made in the code:
Documentation Update
PR Type
enhancement, dependencies
Description
resendOtp
endpoint in theAuthController
with throttling to limit the number of OTP resend requests.ThrottlerModule
andThrottlerGuard
to the application for rate limiting API requests.AuthService
to include aresendOtp
method with error handling.THROTTLE_TTL
andTHROTTLE_LIMIT
for configuring throttling behavior.@nestjs/throttler
to the project dependencies and updated the lock file accordingly.Changes walkthrough 📝
app.module.ts
Add throttling configuration and guard to AppModule
apps/api/src/app/app.module.ts
ThrottlerModule
configuration for rate limiting.ThrottlerGuard
as a global guard.auth.controller.ts
Implement resend OTP endpoint with throttling
apps/api/src/auth/controller/auth.controller.ts
resendOtp
endpoint with throttling.ThrottlerGuard
toresendOtp
endpoint.auth.service.ts
Add resend OTP functionality to AuthService
apps/api/src/auth/service/auth.service.ts
resendOtp
method inAuthService
..env.example
Add throttling configuration variables to .env.example
.env.example
THROTTLE_TTL
andTHROTTLE_LIMIT
environment variables.package.json
Update package.json with throttler dependency
apps/api/package.json
@nestjs/throttler
as a dependency.reflect-metadata
in devDependencies.pnpm-lock.yaml
Update pnpm-lock.yaml for new dependencies
pnpm-lock.yaml
@nestjs/throttler
.