Updates for list filters API
Adds query params stream, user_id, and type to the endpoint
Fixes #XXXX.
Description
This PR has:
- [ ] been tested to ensure log ingestion and log query works.
- [ ] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
- [ ] added documentation for new or modified features or behaviors.
Summary by CodeRabbit
-
New Features
- Enhanced the filtering mechanism for user queries to support more precise retrieval based on provided query parameters such as stream, user ID, and type.
Walkthrough
The changes add a new structure, FilterQueryParams, and a static regex (FILTER_QUERY_PARAMS_RE) in the HTTP users filter handler. The list function now checks if a query string is present. If it is, the function initializes FilterQueryParams and applies the regex to extract values for stream, user_id, and type. The filtering logic then uses these values to refine the filter set. These modifications update the public interface of the module by incorporating regex-based query parameter filtering.
Changes
| File | Change Summary |
|---|---|
src/handlers/http/users/filters.rs |
Added new struct FilterQueryParams and static regex FILTER_QUERY_PARAMS_RE; updated list function to parse query strings and apply filtering logic. |
Sequence Diagram(s)
sequenceDiagram
participant C as Client
participant L as List Function
participant R as Regex Parser
C->>L: Send HTTP GET with query parameters
alt Query string is present
L->>R: Apply FILTER_QUERY_PARAMS_RE on query string
R-->>L: Return captured values (stream, user_id, type)
else No query string
L->>L: Use default filtering logic
end
L->>C: Return filtered user list
Poem
I'm a little rabbit, hopping with cheer,
Regex patterns bloom, making filters clear.
FilterQueryParamsleads my joyful way,
Query strings and logic brightening my day.
In code meadows we leap, a bouncy, refined sphere.
Happy hops in every byte, spread that ASCII cheer!
✨ Finishing Touches
- [ ] 📝 Generate Docstrings
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.
🪧 Tips
Chat
There are 3 ways to chat with CodeRabbit:
- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
-
I pushed a fix in commit <commit_id>, please review it. -
Generate unit testing code for this file. -
Open a follow-up GitHub issue for this discussion.
-
- Files and specific lines of code (under the "Files changed" tab): Tag
@coderabbitaiin 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
@coderabbitaiin 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.
-
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 pauseto pause the reviews on a PR. -
@coderabbitai resumeto resume the paused reviews. -
@coderabbitai reviewto trigger an incremental review. This is useful when automatic reviews are disabled for the repository. -
@coderabbitai full reviewto do a full review from scratch and review all the files again. -
@coderabbitai summaryto regenerate the summary of the PR. -
@coderabbitai generate docstringsto generate docstrings for this PR. -
@coderabbitai resolveresolve all the CodeRabbit review comments. -
@coderabbitai configurationto show the current CodeRabbit configuration for the repository. -
@coderabbitai helpto get help.
Other keywords and placeholders
- Add
@coderabbitai ignoreanywhere in the PR description to prevent this PR from being reviewed. - Add
@coderabbitai summaryto generate the high-level summary at a specific location in the PR description. - Add
@coderabbitaianywhere in the PR title to generate the title automatically.
CodeRabbit Configuration File (.coderabbit.yaml)
- You can programmatically configure CodeRabbit by adding a
.coderabbit.yamlfile 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.