Skip to content

Commit

Permalink
fix: ending survey didn't save into local database
Browse files Browse the repository at this point in the history
  • Loading branch information
MailineN committed Aug 22, 2024
1 parent 27ee274 commit 9911e00
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 16 deletions.
18 changes: 16 additions & 2 deletions src/pages/end-survey/EndSurvey.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,13 @@ import {
import { getCurrentSurveyRootPage } from "service/orchestrator-service";
import { isPwa } from "service/responsive";
import { surveyReadOnly } from "service/survey-activity-service";
import { getCurrentPage, initializeSurveysDatasCache, saveData, setValue } from "service/survey-service";
import {
getCurrentPage,
initializeSurveysDatasCache,
saveData,
setLocalDatabase,
setValue,
} from "service/survey-service";
import { isReviewer } from "service/user-service";
import { getSurveyIdFromUrl } from "utils/utils";

Expand Down Expand Up @@ -112,10 +118,18 @@ const EndSurveyPage = () => {
if (!isDemoMode && navigator.onLine) {
if (isReviewer()) {
return remotePutSurveyDataReviewer(idSurvey, stateData, surveyData.data)
.then(() => {
return setLocalDatabase(stateData, surveyData, idSurvey);
})
.then(navToHome)
.catch(handleError);
} else {
return remotePutSurveyData(idSurvey, surveyData).then(navToHome).catch(handleError);
return remotePutSurveyData(idSurvey, surveyData)
.then(() => {
return setLocalDatabase(stateData, surveyData, idSurvey);
})
.then(navToHome)
.catch(handleError);
}
} else {
return saveDataAndInit(surveyData, true);
Expand Down
33 changes: 24 additions & 9 deletions src/service/api-service/putRemoteData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,22 @@ const requestPutSurveyData = (
data: SurveyData,
token?: string,
): Promise<SurveyData> => {
const collectedData = transformCollectedArray(data?.data?.COLLECTED);
if (data.data) {
data.data.COLLECTED = collectedData;
delete data.data.COLLECTED?.WEEKLYPLANNER;
delete data.data.stateData;
try {
const collectedData = transformCollectedArray(data?.data?.COLLECTED);
if (data?.data) {
data.data.COLLECTED = collectedData;
}
} catch (error) {
console.error("Error transforming collected data:", error);
}
console.log("requestPutSurveyData", data);
const tempData = { ...data };
delete tempData.data.COLLECTED?.WEEKLYPLANNER;
delete tempData.data.stateData;
console.log("requestPutSurveyData", tempData);
const stateData = data.stateData;
const putLunaticData = axios.put(
`${stromaeBackOfficeApiBaseUrl}api/survey-unit/${idSurvey}/data`,
data.data,
tempData.data,
getHeader(stromaeBackOfficeApiBaseUrl, token),
);

Expand Down Expand Up @@ -95,9 +100,19 @@ const requestPutDataReviewer = (
token?: string,
): Promise<LunaticData> => {
console.log("requestPutDataReviewer", data);
data.COLLECTED = transformCollectedArray(data?.COLLECTED);
try {
const collectedData = transformCollectedArray(data?.COLLECTED);
if (data) {
data.COLLECTED = collectedData;
}
} catch (error) {
console.error("Error transforming collected data:", error);
}
//TODO: Find another solution to avoid ui problem
delete data.COLLECTED?.WEEKLYPLANNER;
const tempData = { ...data };
delete tempData.COLLECTED?.WEEKLYPLANNER;
delete tempData.stateData;
console.log("requestPutSurveyData", tempData);
return new Promise<LunaticData>(resolve => {
axios
.put(
Expand Down
10 changes: 5 additions & 5 deletions src/service/survey-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -920,15 +920,14 @@ const saveData = (
if (isReviewerMode) {
return remotePutSurveyDataReviewer(idSurvey, stateData, data).then(() => {
stateData.date = Math.max(stateData.date, data.lastLocalSaveDate ?? 0);
data.stateData = stateData;
data.lastRemoteSaveDate = stateData.date;
data.stateData = stateData;
return setLocalDatabase(stateData, data, idSurvey);
});
} else {
//TODO: TEMP: need to figure out why there is still a state data here
return remotePutSurveyData(idSurvey, surveyData).then(() => {
data.stateData = stateData;
return setLocalDatabase(stateData, data, idSurvey);
//data.stateData = stateData;
return setLocalDatabase(stateData, surveyData, idSurvey);
});
}
} else {
Expand Down Expand Up @@ -971,14 +970,14 @@ const saveDataLocally = (
data = saveQualityScore(idSurvey, data);
}
data.stateData = stateData;
console.log("saveDataLocally");
return setLocalDatabase(stateData, data, idSurvey);
};

const setLocalDatabase = (stateData: StateData, data: LunaticData, idSurvey: string) => {
let oldDataSurvey = datas.get(idSurvey) ?? {};
oldDatas.set(idSurvey, oldDataSurvey);
setDataCache(idSurvey, data);
console.log("Set LocalDatabase stateData", data);
return lunaticDatabase.save(idSurvey, data).then(() => {
datas.set(idSurvey, data);
addItemToSession(idSurvey, data);
Expand Down Expand Up @@ -1750,6 +1749,7 @@ export {
saveData,
saveDataLocally,
saveDatas,
setLocalDatabase,
saveReferentiels,
setData,
setValue,
Expand Down

0 comments on commit 9911e00

Please sign in to comment.