diff --git a/app/client/src/api/PageApi.tsx b/app/client/src/api/PageApi.tsx index 176fcec23e..4420c4867b 100644 --- a/app/client/src/api/PageApi.tsx +++ b/app/client/src/api/PageApi.tsx @@ -63,12 +63,15 @@ export interface CreatePageResponse extends ApiResponse { } export interface FetchPageListResponse extends ApiResponse { - data: Array<{ - id: string; - name: string; - isDefault: boolean; - layouts: Array; - }>; + data: { + pages: Array<{ + id: string; + name: string; + isDefault: boolean; + layouts: Array; + }>; + organizationId: string; + }; } export interface DeletePageRequest { diff --git a/app/client/src/constants/ReduxActionConstants.tsx b/app/client/src/constants/ReduxActionConstants.tsx index c29cb12646..4a9fe37501 100644 --- a/app/client/src/constants/ReduxActionConstants.tsx +++ b/app/client/src/constants/ReduxActionConstants.tsx @@ -131,6 +131,7 @@ export const ReduxActionTypes: { [key: string]: string } = { FETCH_ORGS_SUCCESS: "FETCH_ORGS_SUCCES", FETCH_ORGS_INIT: "FETCH_ORGS_INIT", SAVE_ORG_INIT: "SAVE_ORG_INIT", + SET_CURRENT_ORG_ID: "SET_CURRENT_ORG_ID", STORE_DATASOURCE_REFS: "STORE_DATASOURCE_REFS", UPDATE_DATASOURCE_REFS: "UPDATE_DATASOURCE_REFS", FETCH_USER_INIT: "FETCH_USER_INIT", diff --git a/app/client/src/reducers/uiReducers/orgReducer.ts b/app/client/src/reducers/uiReducers/orgReducer.ts index 5475cd6580..cb8817f148 100644 --- a/app/client/src/reducers/uiReducers/orgReducer.ts +++ b/app/client/src/reducers/uiReducers/orgReducer.ts @@ -13,6 +13,7 @@ const initialState: OrgReduxState = { isFetchAllUsers: false, isDeletingOrgUser: false, }, + currentOrgId: "", orgUsers: [], orgRoles: [], }; @@ -39,6 +40,7 @@ const orgReducer = createReducer(initialState, { isFetchAllUsers: true, }, }), + [ReduxActionTypes.FETCH_ORG_ROLES_SUCCESS]: ( state: OrgReduxState, action: ReduxAction, @@ -113,6 +115,13 @@ const orgReducer = createReducer(initialState, { [ReduxActionTypes.DELETE_ORG_USER_ERROR]: (state: OrgReduxState) => { return { ...state, isDeletingOrgUser: false }; }, + [ReduxActionTypes.SET_CURRENT_ORG_ID]: ( + state: OrgReduxState, + action: ReduxAction<{ orgId: string }>, + ) => ({ + ...state, + currentOrgId: action.payload.orgId, + }), [ReduxActionTypes.FETCH_ORGS_SUCCESS]: ( state: OrgReduxState, @@ -134,6 +143,7 @@ export interface OrgReduxState { }; orgUsers: OrgUser[]; orgRoles: any; + currentOrgId: string; } export default orgReducer; diff --git a/app/client/src/sagas/DatasourcesSagas.ts b/app/client/src/sagas/DatasourcesSagas.ts index 95cf92539e..e546c28ad4 100644 --- a/app/client/src/sagas/DatasourcesSagas.ts +++ b/app/client/src/sagas/DatasourcesSagas.ts @@ -43,6 +43,7 @@ import { AppToaster } from "components/editorComponents/ToastComponent"; import { ToastType } from "react-toastify"; import { getFormData } from "selectors/formSelectors"; import { changeApi, setDatasourceFieldText } from "actions/apiPaneActions"; +import { getCurrentOrgId } from "selectors/organizationSelectors"; function* fetchDatasourcesSaga() { try { @@ -66,8 +67,12 @@ function* createDatasourceSaga( actionPayload: ReduxAction, ) { try { + const organizationId = yield select(getCurrentOrgId); const response: GenericApiResponse = yield DatasourcesApi.createDatasource( - actionPayload.payload, + { + ...actionPayload.payload, + organizationId, + }, ); const isValidResponse = yield validateResponse(response); if (isValidResponse) { @@ -160,6 +165,7 @@ function* updateDatasourceSaga(actionPayload: ReduxAction) { } function* testDatasourceSaga(actionPayload: ReduxAction) { + const organizationId = yield select(getCurrentOrgId); const { initialValues, values } = yield select( getFormData, DATASOURCE_DB_FORM, @@ -172,7 +178,10 @@ function* testDatasourceSaga(actionPayload: ReduxAction) { try { const response: GenericApiResponse = yield DatasourcesApi.testDatasource( - payload, + { + ...payload, + organizationId, + }, ); const isValidResponse = yield validateResponse(response); if (isValidResponse) { @@ -207,6 +216,7 @@ function* createDatasourceFromFormSaga( ) { try { let formConfig; + const organizationId = yield select(getCurrentOrgId); const initialValues = {}; const parseConfig = (section: any): any => { return _.map(section.children, (subSection: any) => { @@ -251,7 +261,10 @@ function* createDatasourceFromFormSaga( }; const response: GenericApiResponse = yield DatasourcesApi.createDatasource( - payload, + { + ...payload, + organizationId, + }, ); const isValidResponse = yield validateResponse(response); if (isValidResponse) { diff --git a/app/client/src/sagas/PageSagas.tsx b/app/client/src/sagas/PageSagas.tsx index 62155092e9..56cd3a477d 100644 --- a/app/client/src/sagas/PageSagas.tsx +++ b/app/client/src/sagas/PageSagas.tsx @@ -75,7 +75,8 @@ export function* fetchPageListSaga( ); const isValidResponse = yield validateResponse(response); if (isValidResponse) { - const pages: PageListPayload = response.data.map(page => ({ + const orgId = response.data.organizationId; + const pages: PageListPayload = response.data.pages.map(page => ({ pageName: page.name, pageId: page.id, isDefault: page.isDefault, @@ -87,6 +88,13 @@ export function* fetchPageListSaga( applicationId, }, }); + yield put({ + type: ReduxActionTypes.SET_CURRENT_ORG_ID, + payload: { + orgId, + }, + }); + return; } } catch (error) { diff --git a/app/client/src/selectors/organizationSelectors.tsx b/app/client/src/selectors/organizationSelectors.tsx index ba117420d5..63efc8375c 100644 --- a/app/client/src/selectors/organizationSelectors.tsx +++ b/app/client/src/selectors/organizationSelectors.tsx @@ -5,6 +5,8 @@ import { OrgRole, Org } from "constants/orgConstants"; export const getRolesFromState = (state: AppState) => { return state.ui.orgs.roles; }; + +export const getCurrentOrgId = (state: AppState) => state.ui.orgs.currentOrgId; export const getOrgs = (state: AppState) => state.ui.orgs.list; export const getAllUsers = (state: AppState) => state.ui.orgs.orgUsers; export const getAllRoles = (state: AppState) => state.ui.orgs.orgRoles;