Skip to content

Commit

Permalink
Merge pull request #80 from yeatmanlab/enh/add-user-data-to-run-doc
Browse files Browse the repository at this point in the history
Add user data to run doc
  • Loading branch information
richford authored Jan 25, 2024
2 parents c085ea5 + aa248ca commit 14231f2
Showing 1 changed file with 21 additions and 12 deletions.
33 changes: 21 additions & 12 deletions src/firestore/app/run.ts
Original file line number Diff line number Diff line change
Expand Up @@ -157,23 +157,31 @@ export class RoarRun {
await this.task.toFirestore();
}

const userDocSnap = await getDoc(this.user.userRef);
if (!userDocSnap.exists()) {
// This should never happen because of ``this.user.checkUserExists`` above. But just in case:
throw new Error('User does not exist');
}

if (this.assigningOrgs) {
const userDocSnap = await getDoc(this.user.userRef);
if (userDocSnap.exists()) {
const userDocData = userDocSnap.data();
const userOrgs = _pick(userDocData, Object.keys(this.assigningOrgs));
for (const orgName of Object.keys(userOrgs)) {
this.assigningOrgs[orgName] = _intersection(userOrgs[orgName]?.current, this.assigningOrgs[orgName]);
if (this.readOrgs) {
this.readOrgs[orgName] = _intersection(userOrgs[orgName]?.current, this.readOrgs[orgName]);
}
const userDocData = userDocSnap.data();
const userOrgs = _pick(userDocData, Object.keys(this.assigningOrgs));
for (const orgName of Object.keys(userOrgs)) {
this.assigningOrgs[orgName] = _intersection(userOrgs[orgName]?.current, this.assigningOrgs[orgName]);
if (this.readOrgs) {
this.readOrgs[orgName] = _intersection(userOrgs[orgName]?.current, this.readOrgs[orgName]);
}
} else {
// This should never happen because of ``this.user.checkUserExists`` above. But just in case:
throw new Error('User does not exist');
}
}

const userDocData = _pick(userDocSnap.data(), [
'grade',
'assessmentPid',
'assessmentUid',
'birthMonth',
'birthYear',
]);

const runData = {
...additionalRunMetadata,
id: this.runRef.id,
Expand All @@ -186,6 +194,7 @@ export class RoarRun {
timeStarted: serverTimestamp(),
timeFinished: null,
reliable: false,
userData: userDocData,
};

await setDoc(this.runRef, removeUndefined(runData))
Expand Down

0 comments on commit 14231f2

Please sign in to comment.