Skip to content

Commit

Permalink
fix(viewReducer): ent-3509 date range for inventory (#597)
Browse files Browse the repository at this point in the history
* productView(s), propTypes, default props for date ranges
* rhsmApiTypes, query check, include beginning, ending params
* viewReducer, move date range to global query
  • Loading branch information
cdcabrera committed Apr 26, 2021
1 parent e0dc0eb commit 126bcf0
Show file tree
Hide file tree
Showing 14 changed files with 103 additions and 57 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ exports[`ProductViewOpenShiftContainer Component should render a non-connected c
productId="OpenShift Container Platform"
query={
Object {
"beginning": "2019-06-20T00:00:00.000Z",
"ending": "2019-07-20T23:59:59.999Z",
"uom": "cores",
}
}
Expand Down Expand Up @@ -173,7 +175,9 @@ exports[`ProductViewOpenShiftContainer Component should render a non-connected c
productId="OpenShift Container Platform"
query={
Object {
"beginning": "2019-06-20T00:00:00.000Z",
"dir": "asc",
"ending": "2019-07-20T23:59:59.999Z",
"limit": 100,
"offset": 0,
"sort": "last_seen",
Expand Down Expand Up @@ -215,7 +219,9 @@ exports[`ProductViewOpenShiftContainer Component should render a non-connected c
productId="OpenShift Container Platform"
query={
Object {
"beginning": "2019-06-20T00:00:00.000Z",
"dir": "asc",
"ending": "2019-07-20T23:59:59.999Z",
"limit": 100,
"offset": 0,
"sort": "upcoming_event_date",
Expand Down Expand Up @@ -413,7 +419,9 @@ exports[`ProductViewOpenShiftContainer Component should render a non-connected c
productId="OpenShift-metrics"
query={
Object {
"beginning": "2019-07-01T00:00:00.000Z",
"dir": "asc",
"ending": "2019-07-31T23:59:59.999Z",
"limit": 100,
"offset": 0,
"sort": "last_seen",
Expand Down Expand Up @@ -737,6 +745,8 @@ Array [
},
],
"query": Object {
"beginning": "2019-06-20T00:00:00.000Z",
"ending": "2019-07-20T23:59:59.999Z",
"uom": "cores",
},
},
Expand Down Expand Up @@ -769,7 +779,10 @@ Array [
"isWrappable": true,
},
],
"query": Object {},
"query": Object {
"beginning": "2019-07-01T00:00:00.000Z",
"ending": "2019-07-31T23:59:59.999Z",
},
},
]
`;
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ exports[`ProductViewOpenShiftDedicated Component should render a non-connected c
productConfig={
Object {
"graphTallyQuery": Object {
"beginning": "2019-07-01T00:00:00.000Z",
"ending": "2019-07-31T23:59:59.999Z",
"granularity": "daily",
},
"initialGraphFilters": Array [
Expand Down Expand Up @@ -46,7 +44,10 @@ exports[`ProductViewOpenShiftDedicated Component should render a non-connected c
"offset": 0,
"sort": "last_seen",
},
"query": Object {},
"query": Object {
"beginning": "2019-07-01T00:00:00.000Z",
"ending": "2019-07-31T23:59:59.999Z",
},
}
}
routeDetail={
Expand Down Expand Up @@ -171,7 +172,7 @@ exports[`ProductViewOpenShiftDedicated Component should render a non-connected c
]
}
t={[Function]}
value="2019-07-01T00:00:00.000Z"
value="t(curiosity-toolbar.granularityRange, {\\"context\\":\\"current\\"})"
viewId="toolbarFieldRangeGranularity"
/>
}
Expand Down Expand Up @@ -327,6 +328,9 @@ Object {
"isWrappable": true,
},
],
"query": Object {},
"query": Object {
"beginning": "2019-07-01T00:00:00.000Z",
"ending": "2019-07-31T23:59:59.999Z",
},
}
`;
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ exports[`ProductViewRhel Component should render a non-connected component: non-
productConfig={
Object {
"graphTallyQuery": Object {
"beginning": "2019-06-20T00:00:00.000Z",
"ending": "2019-07-20T23:59:59.999Z",
"granularity": "daily",
},
"initialGraphFilters": Array [
Expand Down Expand Up @@ -115,7 +113,10 @@ exports[`ProductViewRhel Component should render a non-connected component: non-
"offset": 0,
"sort": "upcoming_event_date",
},
"query": Object {},
"query": Object {
"beginning": "2019-06-20T00:00:00.000Z",
"ending": "2019-07-20T23:59:59.999Z",
},
}
}
routeDetail={
Expand Down Expand Up @@ -602,6 +603,9 @@ Object {
"isWrappable": true,
},
],
"query": Object {},
"query": Object {
"beginning": "2019-06-20T00:00:00.000Z",
"ending": "2019-07-20T23:59:59.999Z",
},
}
`;
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ exports[`ProductViewSatellite Component should render a non-connected component:
productConfig={
Object {
"graphTallyQuery": Object {
"beginning": "2019-06-20T00:00:00.000Z",
"ending": "2019-07-20T23:59:59.999Z",
"granularity": "daily",
},
"initialGraphFilters": Array [
Expand Down Expand Up @@ -115,7 +113,10 @@ exports[`ProductViewSatellite Component should render a non-connected component:
"offset": 0,
"sort": "upcoming_event_date",
},
"query": Object {},
"query": Object {
"beginning": "2019-06-20T00:00:00.000Z",
"ending": "2019-07-20T23:59:59.999Z",
},
}
}
routeDetail={
Expand Down Expand Up @@ -602,6 +603,9 @@ Object {
"isWrappable": true,
},
],
"query": Object {},
"query": Object {
"beginning": "2019-06-20T00:00:00.000Z",
"ending": "2019-07-20T23:59:59.999Z",
},
}
`;
9 changes: 5 additions & 4 deletions src/components/productView/productView.js
Original file line number Diff line number Diff line change
Expand Up @@ -153,9 +153,7 @@ const ProductView = ({ productConfig, routeDetail, t, toolbarGraph, toolbarProdu
ProductView.propTypes = {
productConfig: PropTypes.shape({
graphTallyQuery: PropTypes.shape({
[RHSM_API_QUERY_TYPES.GRANULARITY]: PropTypes.oneOf([...Object.values(GRANULARITY_TYPES)]),
[RHSM_API_QUERY_TYPES.START_DATE]: PropTypes.string,
[RHSM_API_QUERY_TYPES.END_DATE]: PropTypes.string
[RHSM_API_QUERY_TYPES.GRANULARITY]: PropTypes.oneOf([...Object.values(GRANULARITY_TYPES)])
}),
inventoryHostsQuery: PropTypes.shape({
[RHSM_API_QUERY_TYPES.LIMIT]: PropTypes.number,
Expand All @@ -169,7 +167,10 @@ ProductView.propTypes = {
[RHSM_API_QUERY_TYPES.SORT]: PropTypes.oneOf([...Object.values(RHSM_API_QUERY_SUBSCRIPTIONS_SORT_TYPES)]),
[RHSM_API_QUERY_TYPES.DIRECTION]: PropTypes.oneOf([...Object.values(SORT_DIRECTION_TYPES)])
}),
query: PropTypes.object,
query: PropTypes.shape({
[RHSM_API_QUERY_TYPES.START_DATE]: PropTypes.string,
[RHSM_API_QUERY_TYPES.END_DATE]: PropTypes.string
}),
initialToolbarFilters: Toolbar.propTypes.filterOptions,
initialGraphFilters: GraphCard.propTypes.filterGraphData,
initialGuestsFilters: GuestsList.propTypes.filterGuestsData,
Expand Down
22 changes: 12 additions & 10 deletions src/components/productView/productViewOpenShiftContainer.js
Original file line number Diff line number Diff line change
Expand Up @@ -172,12 +172,13 @@ ProductViewOpenShiftContainer.propTypes = {
productConfig: PropTypes.arrayOf(
PropTypes.shape({
productContextFilterUom: PropTypes.bool,
query: PropTypes.object,
graphTallyQuery: PropTypes.shape({
[RHSM_API_QUERY_TYPES.GRANULARITY]: PropTypes.oneOf([...Object.values(GRANULARITY_TYPES)]),
query: PropTypes.shape({
[RHSM_API_QUERY_TYPES.START_DATE]: PropTypes.string,
[RHSM_API_QUERY_TYPES.END_DATE]: PropTypes.string
}),
graphTallyQuery: PropTypes.shape({
[RHSM_API_QUERY_TYPES.GRANULARITY]: PropTypes.oneOf([...Object.values(GRANULARITY_TYPES)])
}),
inventoryHostsQuery: PropTypes.shape({
[RHSM_API_QUERY_TYPES.LIMIT]: PropTypes.number,
[RHSM_API_QUERY_TYPES.OFFSET]: PropTypes.number,
Expand Down Expand Up @@ -222,15 +223,15 @@ ProductViewOpenShiftContainer.defaultProps = {
{
productContextFilterUom: true,
query: {
[RHSM_API_QUERY_TYPES.UOM]: RHSM_API_QUERY_UOM_TYPES.CORES
},
graphTallyQuery: {
[RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY,
[RHSM_API_QUERY_TYPES.UOM]: RHSM_API_QUERY_UOM_TYPES.CORES,
[RHSM_API_QUERY_TYPES.START_DATE]: dateHelpers
.getRangedDateTime(GRANULARITY_TYPES.DAILY)
.startDate.toISOString(),
[RHSM_API_QUERY_TYPES.END_DATE]: dateHelpers.getRangedDateTime(GRANULARITY_TYPES.DAILY).endDate.toISOString()
},
graphTallyQuery: {
[RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY
},
inventoryHostsQuery: {
[RHSM_API_QUERY_TYPES.SORT]: RHSM_API_QUERY_SORT_TYPES.LAST_SEEN,
[RHSM_API_QUERY_TYPES.DIRECTION]: SORT_DIRECTION_TYPES.ASCENDING,
Expand Down Expand Up @@ -396,12 +397,13 @@ ProductViewOpenShiftContainer.defaultProps = {
viewId: 'viewOpenShift'
},
{
query: {},
graphTallyQuery: {
[RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY,
query: {
[RHSM_API_QUERY_TYPES.START_DATE]: dateHelpers.getRangedMonthDateTime('current').value.startDate.toISOString(),
[RHSM_API_QUERY_TYPES.END_DATE]: dateHelpers.getRangedMonthDateTime('current').value.endDate.toISOString()
},
graphTallyQuery: {
[RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY
},
inventoryHostsQuery: {
[RHSM_API_QUERY_TYPES.SORT]: RHSM_API_QUERY_SORT_TYPES.LAST_SEEN,
[RHSM_API_QUERY_TYPES.DIRECTION]: SORT_DIRECTION_TYPES.ASCENDING,
Expand Down
7 changes: 4 additions & 3 deletions src/components/productView/productViewOpenShiftDedicated.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,13 @@ ProductViewOpenShiftDedicated.propTypes = {
*/
ProductViewOpenShiftDedicated.defaultProps = {
productConfig: {
query: {},
graphTallyQuery: {
[RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY,
query: {
[RHSM_API_QUERY_TYPES.START_DATE]: dateHelpers.getRangedMonthDateTime('current').value.startDate.toISOString(),
[RHSM_API_QUERY_TYPES.END_DATE]: dateHelpers.getRangedMonthDateTime('current').value.endDate.toISOString()
},
graphTallyQuery: {
[RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY
},
inventoryHostsQuery: {
[RHSM_API_QUERY_TYPES.SORT]: RHSM_API_QUERY_SORT_TYPES.LAST_SEEN,
[RHSM_API_QUERY_TYPES.DIRECTION]: SORT_DIRECTION_TYPES.ASCENDING,
Expand Down
7 changes: 4 additions & 3 deletions src/components/productView/productViewRhel.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,13 @@ ProductViewRhel.propTypes = {
*/
ProductViewRhel.defaultProps = {
productConfig: {
query: {},
graphTallyQuery: {
[RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY,
query: {
[RHSM_API_QUERY_TYPES.START_DATE]: dateHelpers.getRangedDateTime(GRANULARITY_TYPES.DAILY).startDate.toISOString(),
[RHSM_API_QUERY_TYPES.END_DATE]: dateHelpers.getRangedDateTime(GRANULARITY_TYPES.DAILY).endDate.toISOString()
},
graphTallyQuery: {
[RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY
},
inventoryHostsQuery: {
[RHSM_API_QUERY_TYPES.SORT]: RHSM_API_QUERY_SORT_TYPES.LAST_SEEN,
[RHSM_API_QUERY_TYPES.DIRECTION]: SORT_DIRECTION_TYPES.ASCENDING,
Expand Down
7 changes: 4 additions & 3 deletions src/components/productView/productViewSatellite.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,13 @@ ProductViewSatellite.propTypes = {
*/
ProductViewSatellite.defaultProps = {
productConfig: {
query: {},
graphTallyQuery: {
[RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY,
query: {
[RHSM_API_QUERY_TYPES.START_DATE]: dateHelpers.getRangedDateTime(GRANULARITY_TYPES.DAILY).startDate.toISOString(),
[RHSM_API_QUERY_TYPES.END_DATE]: dateHelpers.getRangedDateTime(GRANULARITY_TYPES.DAILY).endDate.toISOString()
},
graphTallyQuery: {
[RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY
},
inventoryHostsQuery: {
[RHSM_API_QUERY_TYPES.SORT]: RHSM_API_QUERY_SORT_TYPES.LAST_SEEN,
[RHSM_API_QUERY_TYPES.DIRECTION]: SORT_DIRECTION_TYPES.ASCENDING,
Expand Down
5 changes: 1 addition & 4 deletions src/components/toolbar/toolbarFieldRangedMonthly.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,7 @@ const toolbarFieldOptions = dateHelpers.getRangedMonthDateTime().listDateTimeRan
* @returns {Node}
*/
const ToolbarFieldRangedMonthly = ({ options, t, value, viewId }) => {
const updatedValue = useSelector(
({ view }) => view.graphTallyQuery?.[viewId]?.[RHSM_API_QUERY_TYPES.START_DATE],
value
);
const updatedValue = useSelector(({ view }) => view.query?.[viewId]?.[RHSM_API_QUERY_TYPES.START_DATE], value);

const updatedOptions = options.map(option => ({
...option,
Expand Down
24 changes: 12 additions & 12 deletions src/redux/reducers/__tests__/__snapshots__/viewReducer.test.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -304,11 +304,7 @@ Object {
exports[`ViewReducer should handle specific defined types: defined type SET_QUERY_RHSM_beginning 1`] = `
Object {
"result": Object {
"graphTallyQuery": Object {
"test_id": Object {
"beginning": "2018-02-01T00:00:00.000Z",
},
},
"graphTallyQuery": Object {},
"inventoryGuestsQuery": Object {},
"inventoryHostsQuery": Object {
"test_id": Object {
Expand All @@ -324,7 +320,11 @@ Object {
"sort": "ipsum sort",
},
},
"query": Object {},
"query": Object {
"test_id": Object {
"beginning": "2018-02-01T00:00:00.000Z",
},
},
},
"type": "SET_QUERY_RHSM_beginning",
}
Expand All @@ -333,11 +333,7 @@ Object {
exports[`ViewReducer should handle specific defined types: defined type SET_QUERY_RHSM_ending 1`] = `
Object {
"result": Object {
"graphTallyQuery": Object {
"test_id": Object {
"ending": "2021-02-01T23:59:59.999Z",
},
},
"graphTallyQuery": Object {},
"inventoryGuestsQuery": Object {},
"inventoryHostsQuery": Object {
"test_id": Object {
Expand All @@ -353,7 +349,11 @@ Object {
"sort": "ipsum sort",
},
},
"query": Object {},
"query": Object {
"test_id": Object {
"ending": "2021-02-01T23:59:59.999Z",
},
},
},
"type": "SET_QUERY_RHSM_ending",
}
Expand Down
8 changes: 4 additions & 4 deletions src/redux/reducers/viewReducer.js
Original file line number Diff line number Diff line change
Expand Up @@ -113,10 +113,10 @@ const viewReducer = (state = initialState, action) => {
);
case reduxTypes.query.SET_QUERY_RHSM_TYPES[RHSM_API_QUERY_TYPES.START_DATE]:
return reduxHelpers.setStateProp(
'graphTallyQuery',
'query',
{
[action.viewId]: {
...state.graphTallyQuery[action.viewId],
...state.query[action.viewId],
[RHSM_API_QUERY_TYPES.START_DATE]: action[RHSM_API_QUERY_TYPES.START_DATE]
}
},
Expand All @@ -127,10 +127,10 @@ const viewReducer = (state = initialState, action) => {
);
case reduxTypes.query.SET_QUERY_RHSM_TYPES[RHSM_API_QUERY_TYPES.END_DATE]:
return reduxHelpers.setStateProp(
'graphTallyQuery',
'query',
{
[action.viewId]: {
...state.graphTallyQuery[action.viewId],
...state.query[action.viewId],
[RHSM_API_QUERY_TYPES.END_DATE]: action[RHSM_API_QUERY_TYPES.END_DATE]
}
},
Expand Down
Loading

0 comments on commit 126bcf0

Please sign in to comment.