mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-08-25 13:49:40 +00:00
refactor: handle kyc journey for customers
This commit is contained in:
@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { FindOptionsWhere, Repository } from 'typeorm';
|
||||
import { User } from '../../user/entities';
|
||||
import { UserFiltersRequestDto } from '../dtos/request';
|
||||
|
||||
@Injectable()
|
||||
export class UserRepository {
|
||||
@ -32,4 +33,24 @@ export class UserRepository {
|
||||
|
||||
return this.userRepository.save(user);
|
||||
}
|
||||
|
||||
findUsers(filters: UserFiltersRequestDto) {
|
||||
const queryBuilder = this.userRepository.createQueryBuilder('user');
|
||||
|
||||
if (filters.role) {
|
||||
queryBuilder.andWhere(`user.roles @> ARRAY[:role]`, { role: filters.role });
|
||||
}
|
||||
|
||||
if (filters.search) {
|
||||
queryBuilder.andWhere(`user.email ILIKE :search OR user.phoneNumber ILIKE :search`, {
|
||||
search: `%${filters.search}%`,
|
||||
});
|
||||
}
|
||||
|
||||
queryBuilder.orderBy('user.createdAt', 'DESC');
|
||||
queryBuilder.take(filters.size);
|
||||
queryBuilder.skip((filters.page - 1) * filters.size);
|
||||
|
||||
return queryBuilder.getManyAndCount();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user