diff --git a/packages/auth/bin/email.ts b/packages/auth/bin/email.ts index e4fb1fcb3..b4429408f 100644 --- a/packages/auth/bin/email.ts +++ b/packages/auth/bin/email.ts @@ -32,7 +32,7 @@ const sendEmailCampaign = async ( domainEventPublisher: DomainEventPublisherInterface, logger: Logger, ): Promise => { - const stream = await userRepository.streamAll() + const stream = await userRepository.streamTeam('karol+pricing3@standardnotes.com') return new Promise((resolve, reject) => { stream diff --git a/packages/auth/jest.config.js b/packages/auth/jest.config.js index 4fb772453..36210d658 100644 --- a/packages/auth/jest.config.js +++ b/packages/auth/jest.config.js @@ -7,6 +7,6 @@ module.exports = { transform: { ...tsjPreset.transform, }, - coveragePathIgnorePatterns: ['/Bootstrap/', '/InversifyExpressUtils/', 'HealthCheckController'], + coveragePathIgnorePatterns: ['/Bootstrap/', '/InversifyExpressUtils/', 'HealthCheckController', '/Infra/'], setupFilesAfterEnv: ['./test-setup.ts'], } diff --git a/packages/auth/src/Domain/User/UserRepositoryInterface.ts b/packages/auth/src/Domain/User/UserRepositoryInterface.ts index 91a4d3e92..73624cbde 100644 --- a/packages/auth/src/Domain/User/UserRepositoryInterface.ts +++ b/packages/auth/src/Domain/User/UserRepositoryInterface.ts @@ -3,6 +3,7 @@ import { User } from './User' export interface UserRepositoryInterface { streamAll(): Promise + streamTeam(memberEmail?: string): Promise findOneByUuid(uuid: string): Promise findOneByEmail(email: string): Promise save(user: User): Promise diff --git a/packages/auth/src/Infra/MySQL/MySQLUserRepository.ts b/packages/auth/src/Infra/MySQL/MySQLUserRepository.ts index 9f5e5e515..7c3f198a2 100644 --- a/packages/auth/src/Infra/MySQL/MySQLUserRepository.ts +++ b/packages/auth/src/Infra/MySQL/MySQLUserRepository.ts @@ -25,6 +25,17 @@ export class MySQLUserRepository implements UserRepositoryInterface { return this.ormRepository.createQueryBuilder('user').stream() } + async streamTeam(memberEmail?: string): Promise { + const queryBuilder = this.ormRepository.createQueryBuilder() + if (memberEmail !== undefined) { + queryBuilder.where('email = :email', { email: memberEmail }) + } else { + queryBuilder.where('email LIKE :email', { email: '%@standardnotes.com' }) + } + + return queryBuilder.stream() + } + async findOneByUuid(uuid: string): Promise { return this.ormRepository .createQueryBuilder('user')