2024-05-16 11:56:46 +00:00
|
|
|
import { IAdapter, RepositoryBuilder } from "@/contexts/common/domain";
|
|
|
|
|
import { Email } from "@shared/contexts";
|
|
|
|
|
import { User } from "../domain";
|
|
|
|
|
import { IAuthRepository } from "../domain/repository";
|
|
|
|
|
|
|
|
|
|
export const findUserByEmail = async (
|
|
|
|
|
email: Email,
|
|
|
|
|
adapter: IAdapter,
|
|
|
|
|
repository: RepositoryBuilder<IAuthRepository>,
|
|
|
|
|
): Promise<User | null> => {
|
|
|
|
|
const user = await adapter
|
|
|
|
|
.startTransaction()
|
|
|
|
|
.complete(async (t) =>
|
|
|
|
|
repository({ transaction: t }).findUserByEmail(email),
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
return user;
|
|
|
|
|
};
|