Fix Build Error
Deploy / deploy (push) Successful in 47s

This commit is contained in:
Rayyan Syahbani Hermanto
2026-09-07 23:44:40 +07:00
parent 06f4fd06ff
commit 8a278281ce
38 changed files with 927 additions and 427 deletions
@@ -18,54 +18,83 @@ let PrismaUserRepository = class PrismaUserRepository {
constructor(prisma) {
this.prisma = prisma;
}
async findById(id) {
const user = await this.prisma.user.findUnique({
where: { id },
});
return prisma_user_mapper_1.PrismaUserMapper.toDomain(user);
}
async findByEmail(email) {
const user = await this.prisma.user.findUnique({
where: { email },
});
return prisma_user_mapper_1.PrismaUserMapper.toDomain(user);
}
async findAll() {
const users = await this.prisma.user.findMany({
where: { deleted_at: null },
orderBy: { created_at: 'desc' },
});
return users.map(u => prisma_user_mapper_1.PrismaUserMapper.toDomain(u));
}
async create(user) {
const created = await this.prisma.user.create({
data: prisma_user_mapper_1.PrismaUserMapper.toPersistence(user),
});
const created = await this.prisma.user.create({ data: prisma_user_mapper_1.PrismaUserMapper.toPersistence(user) });
return prisma_user_mapper_1.PrismaUserMapper.toDomain(created);
}
async existsById(userId) {
const cnt = await this.prisma.user.count({ where: { id: userId } });
return cnt > 0;
}
async existByEmail(userEmail) {
const u = await this.prisma.user.findFirst({ where: { email: userEmail } });
return !!u;
}
async getById(userId) {
const row = await this.prisma.user.findUnique({ where: { id: userId }, include: { userRoles: { include: { role: { include: { permissions: { include: { permission: true } } } } } }, userPermissions: { include: { permission: true } } } });
if (!row)
throw new common_1.NotFoundException('User not found.');
return prisma_user_mapper_1.PrismaUserMapper.toDomain(row);
}
async getByEmail(userEmail) {
const row = await this.prisma.user.findUnique({ where: { email: userEmail }, include: { userRoles: { include: { role: { include: { permissions: { include: { permission: true } } } } } }, userPermissions: { include: { permission: true } } } });
if (!row)
throw new common_1.NotFoundException('User not found.');
return prisma_user_mapper_1.PrismaUserMapper.toDomain(row);
}
async findByAuthentikId(authentikId) {
const row = await this.prisma.user.findFirst({ where: { OR: [{ authentikId }, { authentikUserId: authentikId }] }, include: { userRoles: { include: { role: { include: { permissions: { include: { permission: true } } } } } }, userPermissions: { include: { permission: true } } } });
if (!row)
return null;
return prisma_user_mapper_1.PrismaUserMapper.toDomain(row);
}
async update(user) {
const updated = await this.prisma.user.update({
where: {
id: user.id,
},
data: prisma_user_mapper_1.PrismaUserMapper.toPersistence(user),
});
const updated = await this.prisma.user.update({ where: { id: user.id }, data: prisma_user_mapper_1.PrismaUserMapper.toPersistence(user), include: { userRoles: { include: { role: { include: { permissions: { include: { permission: true } } } } } }, userPermissions: { include: { permission: true } } } });
return prisma_user_mapper_1.PrismaUserMapper.toDomain(updated);
}
async delete(id) {
const user = await this.prisma.user.update({
where: { id },
data: { deleted_at: new Date() },
});
return prisma_user_mapper_1.PrismaUserMapper.toDomain(user);
}
async existsByEmail(email, excludeId) {
const where = { email };
if (excludeId) {
where.id = { not: excludeId };
async find(params) {
const page = params.page && params.page > 0 ? params.page : 1;
const limit = params.limit && params.limit > 0 ? params.limit : 25;
const where = {};
if (params.search) {
where.OR = [
{ username: { contains: params.search, mode: 'insensitive' } },
{ name: { contains: params.search, mode: 'insensitive' } },
{ email: { contains: params.search, mode: 'insensitive' } },
];
}
const user = await this.prisma.user.findFirst({ where });
return !!user;
if (params.isActive !== undefined && params.isActive !== null) {
where.isActive = params.isActive;
}
if (params.deleted !== undefined && params.deleted !== null) {
if (params.deleted)
where.deletedAt = { not: null };
else
where.deletedAt = null;
}
if (params.roleId) {
where.userRoles = { some: { roleId: params.roleId } };
}
const [total, items] = await Promise.all([
this.prisma.user.count({ where }),
this.prisma.user.findMany({ where, skip: (page - 1) * limit, take: limit, orderBy: { createdAt: 'desc' }, include: { userRoles: { include: { role: { include: { permissions: { include: { permission: true } } } } } }, userPermissions: { include: { permission: true } } } }),
]);
return { data: items.map(i => prisma_user_mapper_1.PrismaUserMapper.toDomain(i)), total };
}
async softDelete(userId) {
await this.prisma.user.update({ where: { id: userId }, data: { deletedAt: new Date() } });
}
async restore(userId) {
const updated = await this.prisma.user.update({ where: { id: userId }, data: { deletedAt: null }, include: { userRoles: { include: { role: { include: { permissions: { include: { permission: true } } } } } }, userPermissions: { include: { permission: true } } } });
return prisma_user_mapper_1.PrismaUserMapper.toDomain(updated);
}
async enable(userId) {
const updated = await this.prisma.user.update({ where: { id: userId }, data: { isActive: true }, include: { userRoles: { include: { role: { include: { permissions: { include: { permission: true } } } } } }, userPermissions: { include: { permission: true } } } });
return prisma_user_mapper_1.PrismaUserMapper.toDomain(updated);
}
async disable(userId) {
const updated = await this.prisma.user.update({ where: { id: userId }, data: { isActive: false }, include: { userRoles: { include: { role: { include: { permissions: { include: { permission: true } } } } } }, userPermissions: { include: { permission: true } } } });
return prisma_user_mapper_1.PrismaUserMapper.toDomain(updated);
}
};
exports.PrismaUserRepository = PrismaUserRepository;
File diff suppressed because one or more lines are too long