Skip to content

Conversation

@ppodds
Copy link
Contributor

@ppodds ppodds commented May 6, 2025

Related to a new feature added in zenstackhq/zenstack#2099.

Summary by CodeRabbit

  • Documentation
    • Expanded the NestJS adapter documentation with a new section on using the ApiHandlerService for automated request handling.
    • Added detailed instructions and code examples for integrating and using ApiHandlerService in NestJS controllers.
    • Updated the API reference to include the handleRequest method and its options, clarifying configuration and usage.

@vercel
Copy link

vercel bot commented May 6, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
zenstack-new-site ✅ Ready (Inspect) Visit Preview 💬 Add feedback May 6, 2025 5:11am

@coderabbitai
Copy link
Contributor

coderabbitai bot commented May 6, 2025

Walkthrough

The documentation for the NestJS adapter was updated to include a new section on the ApiHandlerService, detailing its purpose, usage, and configuration. Example code snippets were added, and the API reference now documents the handleRequest method and its options interface, clarifying its integration and usage in NestJS applications.

Changes

File(s) Change Summary
docs/reference/server-adapters/nestjs.mdx Added documentation for ApiHandlerService, including usage instructions, example code, and API reference details.

Sequence Diagram(s)

sequenceDiagram
    participant Controller
    participant ApiHandlerService
    participant Handler

    Controller->>ApiHandlerService: handleRequest(options)
    ApiHandlerService->>Handler: Invoke API request handler (default or custom)
    Handler-->>ApiHandlerService: Return response
    ApiHandlerService-->>Controller: Return processed response
Loading

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

‼️ IMPORTANT
Auto-reply has been disabled for this repository in the CodeRabbit settings. The CodeRabbit bot will not respond to your replies unless it is explicitly tagged.

  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (5)
docs/reference/server-adapters/nestjs.mdx (5)

69-72: Consistent Heading Formatting
The new section header has two spaces after the ###, whereas other section titles use a single space. Please adjust to a single space for consistency with the rest of the document.


73-95: Export the ApiHandlerService for broader reuse
The example registers ApiHandlerService under providers but doesn’t export it. To allow injection in controllers from other modules, consider adding it to the exports array:

 @Module({
   imports: [
     // ...
   ],
   providers: [ApiHandlerService],
+  exports: [ApiHandlerService],
 })
 export class AppModule {}

101-119: Clarify default RPC handler behavior
It may help users if you briefly note that handleRequest() infers the model and operation name from the route path, defaulting to RPC-style handling. A short line in the example explaining this will prevent confusion about why no options object is passed.


216-222: Add a descriptive intro to handleRequest reference
The signature is clear, but including a one-sentence summary above it—e.g., “Handles an API request using the configured handler and returns its result”—will give readers immediate context before diving into the signature.


224-266: Link referenced types and refine parameter docs
For better navigability, hyperlink or cross-reference the types (LoggerConfig, ModelMeta, ZodSchemas, HandleRequestFn) to their API definitions. Additionally, standardize punctuation in the JSDoc blocks (e.g., add terminal periods).

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 08ee2be and 2af7867.

📒 Files selected for processing (1)
  • docs/reference/server-adapters/nestjs.mdx (2 hunks)
🔇 Additional comments (1)
docs/reference/server-adapters/nestjs.mdx (1)

125-158: Verify export and align code style in RESTful example
The snippet uses a default import for RESTApiHandler. Please confirm that @zenstackhq/server/api/rest exports RESTApiHandler as the default; if it's a named export, update the import accordingly. Also consider adding semicolons at the end of statements to match the TS examples above.

Copy link
Member

@ymc9 ymc9 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great. Thank you @ppodds ! I'm merging and will publish a new release.

@ymc9 ymc9 merged commit f9db88d into zenstackhq:main May 8, 2025
3 checks passed
@coderabbitai coderabbitai bot mentioned this pull request Aug 1, 2025
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.

2 participants