diff --git a/app/client/src/api/ActionAPI.tsx b/app/client/src/api/ActionAPI.tsx index 6d98cf6befea..4e16158c3c32 100644 --- a/app/client/src/api/ActionAPI.tsx +++ b/app/client/src/api/ActionAPI.tsx @@ -132,7 +132,18 @@ class ActionAPI extends API { static async createAction( apiConfig: Partial, ): Promise> { - return API.post(ActionAPI.url, { ...apiConfig, eventData: undefined }); + const payload = { + ...apiConfig, + eventData: undefined, + isValid: undefined, + entityReferenceType: undefined, + datasource: { + ...apiConfig.datasource, + isValid: undefined, + new: undefined, + }, + }; + return API.post(ActionAPI.url, payload); } static async fetchActions( @@ -170,6 +181,7 @@ class ActionAPI extends API { ...(action as any).datasource, datasourceStorages: undefined, isValid: undefined, + new: undefined, }; } return API.put(`${ActionAPI.url}/${action.id}`, action, undefined, { diff --git a/app/client/src/api/DatasourcesApi.ts b/app/client/src/api/DatasourcesApi.ts index f47eda81123a..50c3f3203ff0 100644 --- a/app/client/src/api/DatasourcesApi.ts +++ b/app/client/src/api/DatasourcesApi.ts @@ -14,15 +14,6 @@ export interface CreateDatasourceConfig { appName?: string; } -export interface EmbeddedRestDatasourceRequest { - datasourceConfiguration: { url: string }; - invalids: Array; - isValid: boolean; - name: string; - workspaceId: string; - pluginId: string; -} - // type executeQueryData = Array<{ key?: string; value?: string }>; type executeQueryData = Record; @@ -43,6 +34,36 @@ class DatasourcesApi extends API { static async createDatasource( datasourceConfig: Partial, ): Promise { + // This here abomination is to remove several fields that are not accepted by the server. + for (const [name, storage] of Object.entries( + datasourceConfig.datasourceStorages || {}, + )) { + datasourceConfig = { + ...datasourceConfig, + isValid: undefined, + datasourceStorages: { + ...datasourceConfig.datasourceStorages, + [name]: { + ...storage, + isValid: undefined, + toastMessage: undefined, + datasourceConfiguration: { + ...storage.datasourceConfiguration, + isValid: undefined, + connection: storage.datasourceConfiguration.connection && { + ...storage.datasourceConfiguration.connection, + ssl: { + ...storage.datasourceConfiguration.connection.ssl, + authTypeControl: undefined, + certificateType: undefined, + }, + }, + }, + }, + }, + } as any; + } + return API.post(DatasourcesApi.url, datasourceConfig); } @@ -52,14 +73,26 @@ class DatasourcesApi extends API { pluginId: string, workspaceId: string, ): Promise { - return API.post( - `${DatasourcesApi.url}/test`, - { ...datasourceConfig, pluginId, workspaceId }, - undefined, - { - timeout: DEFAULT_TEST_DATA_SOURCE_TIMEOUT_MS, + const payload = { + ...datasourceConfig, + pluginId, + workspaceId, + isValid: undefined, + toastMessage: undefined, + datasourceConfiguration: datasourceConfig.datasourceConfiguration && { + ...datasourceConfig.datasourceConfiguration, + connection: datasourceConfig.datasourceConfiguration.connection && { + ...datasourceConfig.datasourceConfiguration.connection, + ssl: { + ...datasourceConfig.datasourceConfiguration.connection.ssl, + certificateType: undefined, + }, + }, }, - ); + }; + return API.post(`${DatasourcesApi.url}/test`, payload, undefined, { + timeout: DEFAULT_TEST_DATA_SOURCE_TIMEOUT_MS, + }); } // Api to update datasource name. @@ -72,12 +105,24 @@ class DatasourcesApi extends API { // Api to update specific datasource storage/environment configuration static async updateDatasourceStorage( - datasourceConfig: Partial, + datasourceStorage: Partial, ): Promise { - return API.put( - DatasourcesApi.url + `/datasource-storages`, - datasourceConfig, - ); + const payload = { + ...datasourceStorage, + isValid: undefined, + toastMessage: undefined, + datasourceConfiguration: datasourceStorage.datasourceConfiguration && { + ...datasourceStorage.datasourceConfiguration, + connection: datasourceStorage.datasourceConfiguration.connection && { + ...datasourceStorage.datasourceConfiguration.connection, + ssl: { + ...datasourceStorage.datasourceConfiguration.connection.ssl, + authTypeControl: undefined, + }, + }, + }, + }; + return API.put(DatasourcesApi.url + `/datasource-storages`, payload); } static async deleteDatasource(id: string): Promise { diff --git a/app/client/src/ce/api/ApplicationApi.tsx b/app/client/src/ce/api/ApplicationApi.tsx index 29f9a3666ffb..aac2706a98e4 100644 --- a/app/client/src/ce/api/ApplicationApi.tsx +++ b/app/client/src/ce/api/ApplicationApi.tsx @@ -368,7 +368,11 @@ export class ApplicationApi extends Api { request: UpdateApplicationRequest, ): Promise>> { const { id, ...rest } = request; - return Api.put(ApplicationApi.baseURL + "/" + id, rest); + const payload = { + ...rest, + currentApp: undefined, + }; + return Api.put(ApplicationApi.baseURL + "/" + id, payload); } static async deleteApplication(