Uecko_ERP/apps/server/archive/contexts/auth/domain/services/user.service.ts

41 lines
1.4 KiB
TypeScript
Raw Normal View History

2025-05-02 21:43:51 +00:00
import { UniqueID } from "@/core/common/domain";
2025-05-09 10:45:32 +00:00
import { Collection, Result } from "@repo/rdx-utils";
2025-02-15 21:30:12 +00:00
import { IUserRepository, User } from "..";
import { IUserService } from "./user-service.interface";
export class UserService implements IUserService {
constructor(private readonly userRepository: IUserRepository) {}
2025-02-24 19:00:28 +00:00
async findUsers(transaction?: any): Promise<Result<Collection<User>, Error>> {
2025-02-15 21:30:12 +00:00
const usersOrError = await this.userRepository.findAll(transaction);
if (usersOrError.isFailure) {
return Result.fail(usersOrError.error);
}
// Solo devolver usuarios activos
2025-02-21 10:06:27 +00:00
const activeUsers = usersOrError.data.filter((user) => user.isActive);
2025-02-24 19:00:28 +00:00
return Result.ok(new Collection(activeUsers));
2025-02-15 21:30:12 +00:00
}
async findUserById(userId: UniqueID, transaction?: any): Promise<Result<User>> {
return await this.userRepository.findById(userId, transaction);
}
/*public async createUser(
data: { name: string; email: EmailAddress },
transaction?: Transaction
): Promise<Result<User>> {
// Evitar duplicados por email
const existingUser = await this.userRepository.findByEmail(data.email);
if (existingUser.isSuccess) {
return Result.fail(new Error("El correo ya está registrado."));
}
const newUser = User.create({
email,
username
})
return await this.userRepository.save(newUser, transaction);
}*/
}