CPS-1016 Merge 2 'query' end points in NCMP
CPS-1016: Merge 2 'query' end points in NCMP Closed
Assumptions/Decisions
Issue | Notes/Jira | Decision | ||
---|---|---|---|---|
1 | 1 | There are 2 separate query objects defined in OpenAPI | Combine them into one 'Conditions' has the better structure but 'cmHandleQueryRestParameters' is a better name | |
2 | Exact format of 'legacy' Conditions unclear and maybe not generic enough | |||
3 | Definition of 'Conditions' is not Generic enough | $ref: '#/components/schemas/ModuleNamesAsJsonArray Should be something like '#/components/ConditionParametersNameValuePairs | ||
4 | Agree backward incompatibility | Discuss with stakeholders |
Implementation Proposal
Merge 2 'query' end points in one
Layer | Proposed Changes | |
---|---|---|
1 | REST Layer |
|
2 | Controller Layer |
|
3 | Service Layer |
|
4 | Persistence Layer |
|
New Rest Request Input Format
Assumed Current Request Format:
See Issue #3, it need to be confirmed
{ "conditions": [
{
"name": "hasAllModules",
"conditionParameters": [ {"moduleName": "module1"} ,{ "moduleName": "module2" } }
}
]
}
Action 1: Rename query new top element name
After 'Merge' it should also support (public Properties conditions like so
{ "cmHandleQueryRestParameters": [
{
"name": "hasAllModules",
"conditionParameters": [ {"moduleName": "module1"} ,{ "moduleName": "module2" } ]
}
]
}
Action 2: Support (public' Properties condition using the same format
{ "cmHandleQueryRestParameters": [
{
"name": "hasAllProperties",
"conditionParameters": [ {"Colour": "Green"} ,{ "Size": "Small" } ]
}
]
}
Action 2: Verify combinations of conditions are supported (AND is assumed)
Test
update existing tests to the new endpoint (groovy and CSIT)
create new tests for new filtering scenarios (combine the two existing filter) in CSIT tests