diff --git a/src/graphql/resolvers/mutations/shareWithAddBy.js b/src/graphql/resolvers/mutations/shareWithAddBy.js index 57399e2..11a0233 100644 --- a/src/graphql/resolvers/mutations/shareWithAddBy.js +++ b/src/graphql/resolvers/mutations/shareWithAddBy.js @@ -3,7 +3,10 @@ import * as Sentry from '@sentry/node'; import { dataSources } from '@thatconference/api'; import memberStore from '../../../dataSources/cloudFirestore/member'; import sharingWithStore from '../../../dataSources/cloudFirestore/sharingWith'; -import { findSharedProfile } from '../../../lib/findSharedProfile'; +import { + findSharedProfile, + findSharedProfileProfileLoader, +} from '../../../lib/findSharedProfile'; const dlog = debug('that:api:members:mutation:share-with-add-by'); const orderStore = dataSources.cloudFirestore.order; @@ -17,6 +20,7 @@ export const fieldResolvers = { { dataSources: { firestore, + profileLoader, events: { userEvents }, }, user, @@ -79,9 +83,10 @@ export const fieldResolvers = { } if (addResult.message === null) { dlog('storeResult %o', storeResult); - const sharedProfile = await findSharedProfile({ + const sharedProfile = await findSharedProfileProfileLoader({ memberId: user.sub, firestore, + profileLoader, }); userEvents.emit('addNewSharingWith', { sharingWith, @@ -109,6 +114,7 @@ export const fieldResolvers = { { dataSources: { firestore, + profileLoader, events: { userEvents }, }, user, @@ -152,9 +158,10 @@ export const fieldResolvers = { }, }); dlog('storeResult %o', storeResult); - const sharedProfile = await findSharedProfile({ + const sharedProfile = await findSharedProfileProfileLoader({ memberId: user.sub, firestore, + profileLoader, }); userEvents.emit('addNewSharingWith', { diff --git a/src/lib/findSharedProfile.js b/src/lib/findSharedProfile.js index 2492aa0..204882d 100644 --- a/src/lib/findSharedProfile.js +++ b/src/lib/findSharedProfile.js @@ -27,3 +27,27 @@ export const findSharedProfile = async ({ memberId, firestore }) => { return sharedProfile; }; + +export const findSharedProfileProfileLoader = async ({ + memberId, + firestore, + profileLoader, +}) => { + dlog('finding shared profile for %s (pl)', memberId); + let sharedProfile; + sharedProfile = await sharedProfileStore(firestore).get(memberId); + if (sharedProfile === null) { + const memberRecord = await profileLoader.load(memberId); + if (memberRecord) { + sharedProfile = { + id: memberRecord.id, + firstName: memberRecord.firstName, + lastName: memberRecord.lastName, + email: memberRecord.lastName, + company: memberRecord.company, + }; + } + } + + return sharedProfile; +};