diff --git a/services/MemberProvider.ts b/services/MemberProvider.ts index 35ee086..af81045 100644 --- a/services/MemberProvider.ts +++ b/services/MemberProvider.ts @@ -78,6 +78,15 @@ export class MemberProvider extends PrismaService implements IMemberProvider { return record && MemberProvider.getMemberFromRecord(record); } + public async findAnyInSystemBySlackId(slackId: string): Promise> { + const record = await this.connection.memberRecord.findFirst({ + where: { slackId }, + include: { ...this.globalInclude }, + }); + + return record && MemberProvider.getMemberFromRecord(record); + } + public async getAll(): Promise { const records = await this.connection.memberRecord.findMany({ where: { ...this.globalWhere }, diff --git a/services/MemberService.ts b/services/MemberService.ts index 7b1d88e..215a890 100644 --- a/services/MemberService.ts +++ b/services/MemberService.ts @@ -84,6 +84,10 @@ export class MemberService implements IMemberService { return this.memberProvider.findBySlackId(slackId); } + public findAnyInSystemBySlackId(slackId: string): Promise> { + return this.memberProvider.findAnyInSystemBySlackId(slackId); + } + public getAll(): Promise { return this.memberProvider.getAll(); } @@ -175,7 +179,7 @@ export class MemberService implements IMemberService { const slackMembers = await this.slackMemberProvider.getAll(); for (const member of slackMembers) { - const existing = await this.findBySlackId(member.id); + const existing = await this.findAnyInSystemBySlackId(member.id); if (existing) { existing.setName(member.name); diff --git a/services/interfaces/IMemberProvider.ts b/services/interfaces/IMemberProvider.ts index 8b3f24c..5b5be30 100644 --- a/services/interfaces/IMemberProvider.ts +++ b/services/interfaces/IMemberProvider.ts @@ -8,6 +8,8 @@ export interface IMemberProvider { findBySlackId(slackId: string): Promise>; + findAnyInSystemBySlackId(slackId: string): Promise>; + getAll(): Promise; getAllCheckInNonNull(): Promise;