saveState = {
console.log("Initializing saveState")
return async function saveState() {
console.log("saveState saving...");
const answers = Object.entries(viewof responses.value).reduce(
(map, [cell_name, q]) => {
if (q && q.control && q.control !== "undefined" && (q.control.length > 0 || q.control.length === undefined))
map.set(cell_name, q.control)
return map;
},
new Map()
)
const name = `answers_${Date.now()}.json`
const state = ({
answers: [...answers.entries()],
questions: version.questions,
layout: version.layout
});
await putObject(config.CONFIDENTIAL_BUCKET, `accounts/${account}/surveys/${survey}/${name}`,
JSON.stringify(state), {
tags: {
"surveys": survey,
"account": account,
}
});
const newSettings = accountSettings;
newSettings["surveys"] = newSettings["surveys"] || {};
newSettings["surveys"][survey] = newSettings["surveys"][survey] || {};
newSettings["surveys"][survey]["answers"] = newSettings["surveys"][survey]["answers"] || [];
newSettings["surveys"][survey]["answers"] = [...newSettings["surveys"][survey]["answers"], name];
await putObject(config.CONFIDENTIAL_BUCKET, `accounts/${account}/settings.json`,
JSON.stringify(newSettings), {
tags: {
"survey": survey,
"account": account,
}
});
console.log("saveState done");
return answers;
}
}