-
-
Notifications
You must be signed in to change notification settings - Fork 56
feat: extend existing function support with optional boolean parameters #347
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
Conversation
WalkthroughThe pull request updates several Doctrine ORM query functions to extend a variadic base class and integrate boolean argument validation. Each function now includes a new method to enforce argument count and type rules, with modifications to the function prototype and documentation. The changes improve error handling by throwing exceptions when invalid arguments are provided. Parallel updates in the test suite extend coverage with new assertions and expected SQL/DQL statements for various error cases. Changes
Sequence Diagram(s)sequenceDiagram
participant Client
participant Function
participant Validator as BooleanValidationTrait
Client->>Function: Call function with arguments
Function->>Function: validateArguments(...)
alt Valid argument count
alt Boolean argument provided
Function->>Validator: validateBoolean(arg)
alt Boolean valid
Function->>Client: Execute function and return result
else Boolean invalid
Function->>Client: Throw InvalidBooleanException
end
else
Function->>Client: Execute function and return result
end
else Invalid argument count
Function->>Client: Throw InvalidArgumentForVariadicFunctionException
end
Possibly related PRs
Poem
Tip ⚡💬 Agentic Chat (Pro Plan, General Availability)
📜 Recent review detailsConfiguration used: .coderabbit.yaml 📒 Files selected for processing (8)
🧰 Additional context used📓 Path-based instructions (1)`tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/**/*.php`: Use the PostgreSQL official documentation to verify that tests include comprehensive use cases and example SQL que...
🧬 Code Graph Analysis (7)src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/ArrayToJson.php (3)
tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/ArrayToJsonTest.php (2)
src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RowToJson.php (3)
src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/JsonbSet.php (3)
src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/JsonbInsert.php (3)
tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/JsonbSetTest.php (3)
tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/JsonbInsertTest.php (2)
⏰ Context from checks skipped due to timeout of 90000ms (20)
🔇 Additional comments (50)
✨ Finishing Touches
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
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)
Other keywords and placeholders
Documentation and Community
|
Summary by CodeRabbit