Skip to content

Commit 3e4f323

Browse files
authored
Merge pull request #929 from aldenhallak/missing-id
Improve experiment template ID handling by resetting on creation, validating updates, and using experiment ID for retrieval.
2 parents f0df073 + 2c87f13 commit 3e4f323

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

functions/src/experiment.endpoints.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,17 @@ export const updateExperiment = onCall(async (request) => {
6464
await AuthGuard.isExperimenter(request);
6565
const {data} = request;
6666

67+
// Validate input
68+
const templateId =
69+
data.experimentTemplate?.id || data.experimentTemplate?.experiment?.id;
70+
71+
if (!data.collectionName || !templateId) {
72+
throw new HttpsError(
73+
'invalid-argument',
74+
'collectionName and experimentTemplate.id (or experiment.id) are required',
75+
);
76+
}
77+
6778
const experimenterId = request.auth?.token.email?.toLowerCase() || '';
6879

6980
// Use shared utility to update experiment
@@ -73,7 +84,7 @@ export const updateExperiment = onCall(async (request) => {
7384
const document = app
7485
.firestore()
7586
.collection(data.collectionName)
76-
.doc(data.experimentTemplate.id);
87+
.doc(templateId);
7788

7889
// If experiment does not exist, return false
7990
const oldExperiment = await document.get();
@@ -212,7 +223,7 @@ export const getExperimentTemplate = onCall(async (request) => {
212223
}
213224

214225
const template = createExperimentTemplate({
215-
id: '',
226+
id: data.experimentId,
216227
experiment,
217228
});
218229

0 commit comments

Comments
 (0)