From f24b93da8366bd8b2e9f0b536d153361ad0a727f Mon Sep 17 00:00:00 2001 From: akash-codemonk <67054171+akash-codemonk@users.noreply.github.com> Date: Fri, 18 Mar 2022 17:38:10 +0530 Subject: [PATCH] chore: fix import template (#11963) --- app/client/src/api/TemplatesApi.ts | 2 +- app/client/src/sagas/TemplatesSagas.ts | 33 ++++++++++++++------------ 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/app/client/src/api/TemplatesApi.ts b/app/client/src/api/TemplatesApi.ts index bb4eca1a37..4736821bd1 100644 --- a/app/client/src/api/TemplatesApi.ts +++ b/app/client/src/api/TemplatesApi.ts @@ -51,7 +51,7 @@ class TemplatesAPI extends Api { static importTemplate( templateId: string, organizationId: string, - ): AxiosPromise { + ): AxiosPromise { return Api.post( TemplatesAPI.baseUrl + `/app-templates/${templateId}/import/${organizationId}`, diff --git a/app/client/src/sagas/TemplatesSagas.ts b/app/client/src/sagas/TemplatesSagas.ts index 39284c0c8c..1c1e8a968c 100644 --- a/app/client/src/sagas/TemplatesSagas.ts +++ b/app/client/src/sagas/TemplatesSagas.ts @@ -5,7 +5,7 @@ import { ReduxActionTypes, } from "constants/ReduxActionConstants"; import { all, put, takeEvery, call } from "redux-saga/effects"; -import TemplatesAPI from "api/TemplatesApi"; +import TemplatesAPI, { ImportTemplateResponse } from "api/TemplatesApi"; import { BUILDER_PAGE_URL } from "constants/routes"; import history from "utils/history"; import { getDefaultPageId } from "./ApplicationSagas"; @@ -40,24 +40,27 @@ function* importTemplateToOrganisationSaga( action: ReduxAction<{ templateId: string; organizationId: string }>, ) { try { - const response = yield call( + const response: ImportTemplateResponse = yield call( TemplatesAPI.importTemplate, action.payload.templateId, action.payload.organizationId, ); - const application: ApplicationPayload = { - ...response, - defaultPageId: getDefaultPageId(response.pages), - }; - const pageURL = BUILDER_PAGE_URL({ - applicationId: application.id, - pageId: application.defaultPageId, - }); - yield put({ - type: ReduxActionTypes.IMPORT_TEMPLATE_TO_ORGANISATION_SUCCESS, - payload: response, - }); - history.push(pageURL); + const isValid = yield validateResponse(response); + if (isValid) { + const application: ApplicationPayload = { + ...response.data, + defaultPageId: getDefaultPageId(response.data.pages), + }; + const pageURL = BUILDER_PAGE_URL({ + applicationId: application.id, + pageId: application.defaultPageId, + }); + yield put({ + type: ReduxActionTypes.IMPORT_TEMPLATE_TO_ORGANISATION_SUCCESS, + payload: response.data, + }); + history.push(pageURL); + } } catch (error) { yield put({ type: ReduxActionErrorTypes.IMPORT_TEMPLATE_TO_ORGANISATION_ERROR,