Update the action config with the datasource info (#1451)
This commit is contained in:
parent
1fd9de84ae
commit
d652c1485d
|
|
@ -10,6 +10,7 @@ import _ from "lodash";
|
||||||
import { RapidApiAction, RestAction } from "entities/Action";
|
import { RapidApiAction, RestAction } from "entities/Action";
|
||||||
import { UpdateActionPropertyActionPayload } from "actions/actionActions";
|
import { UpdateActionPropertyActionPayload } from "actions/actionActions";
|
||||||
import produce from "immer";
|
import produce from "immer";
|
||||||
|
import { Datasource } from "api/DatasourcesApi";
|
||||||
|
|
||||||
export interface ActionData {
|
export interface ActionData {
|
||||||
isLoading: boolean;
|
isLoading: boolean;
|
||||||
|
|
@ -335,6 +336,52 @@ const actionsReducer = createReducer(initialState, {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
[ReduxActionTypes.FETCH_DATASOURCES_SUCCESS]: (
|
||||||
|
state: ActionDataState,
|
||||||
|
action: ReduxAction<Datasource[]>,
|
||||||
|
) => {
|
||||||
|
const datasources = action.payload;
|
||||||
|
|
||||||
|
return state.map(action => {
|
||||||
|
const datasourceId = action.config.datasource.id;
|
||||||
|
if (datasourceId) {
|
||||||
|
const datasource = datasources.find(
|
||||||
|
datasource => datasource.id === datasourceId,
|
||||||
|
);
|
||||||
|
|
||||||
|
return {
|
||||||
|
...action,
|
||||||
|
config: {
|
||||||
|
...action.config,
|
||||||
|
datasource: datasource,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return action;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
[ReduxActionTypes.UPDATE_DATASOURCE_SUCCESS]: (
|
||||||
|
state: ActionDataState,
|
||||||
|
action: ReduxAction<Datasource>,
|
||||||
|
) => {
|
||||||
|
const datasource = action.payload;
|
||||||
|
|
||||||
|
return state.map(action => {
|
||||||
|
const datasourceId = action.config.datasource.id;
|
||||||
|
if (datasourceId && datasource.id === datasourceId) {
|
||||||
|
return {
|
||||||
|
...action,
|
||||||
|
config: {
|
||||||
|
...action.config,
|
||||||
|
datasource: datasource,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return action;
|
||||||
|
});
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
export default actionsReducer;
|
export default actionsReducer;
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,7 @@ import { ActionData } from "reducers/entityReducers/actionsReducer";
|
||||||
import {
|
import {
|
||||||
getAction,
|
getAction,
|
||||||
getCurrentPageNameByActionId,
|
getCurrentPageNameByActionId,
|
||||||
|
getDatasource,
|
||||||
getPageNameByPageId,
|
getPageNameByPageId,
|
||||||
} from "selectors/entitiesSelector";
|
} from "selectors/entitiesSelector";
|
||||||
import { PLUGIN_TYPE_API } from "constants/ApiEditorConstants";
|
import { PLUGIN_TYPE_API } from "constants/ApiEditorConstants";
|
||||||
|
|
@ -87,7 +88,19 @@ export function* createActionSaga(actionPayload: ReduxAction<RestAction>) {
|
||||||
pageName: pageName,
|
pageName: pageName,
|
||||||
...actionPayload.payload.eventData,
|
...actionPayload.payload.eventData,
|
||||||
});
|
});
|
||||||
yield put(createActionSuccess(response.data));
|
|
||||||
|
let newAction = response.data;
|
||||||
|
|
||||||
|
if (newAction.datasource.id) {
|
||||||
|
const datasource = yield select(getDatasource, newAction.datasource.id);
|
||||||
|
|
||||||
|
newAction = {
|
||||||
|
...newAction,
|
||||||
|
datasource,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
yield put(createActionSuccess(newAction));
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
yield put({
|
yield put({
|
||||||
|
|
@ -234,10 +247,26 @@ export function* updateActionSaga(actionPayload: ReduxAction<{ id: string }>) {
|
||||||
pageName: pageName,
|
pageName: pageName,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let updatedAction = response.data;
|
||||||
|
|
||||||
|
if (updatedAction.datasource.id) {
|
||||||
|
const datasource = yield select(
|
||||||
|
getDatasource,
|
||||||
|
updatedAction.datasource.id,
|
||||||
|
);
|
||||||
|
|
||||||
|
updatedAction = {
|
||||||
|
...updatedAction,
|
||||||
|
datasource,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
PerformanceTracker.stopAsyncTracking(
|
PerformanceTracker.stopAsyncTracking(
|
||||||
PerformanceTransactionName.UPDATE_ACTION_API,
|
PerformanceTransactionName.UPDATE_ACTION_API,
|
||||||
);
|
);
|
||||||
yield put(updateActionSuccess({ data: response.data }));
|
|
||||||
|
yield put(updateActionSuccess({ data: updatedAction }));
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
PerformanceTracker.stopAsyncTracking(
|
PerformanceTracker.stopAsyncTracking(
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user