Merge branch 'development' into 'devops-staging'

fix: add user deetail in get all user

See merge request empatnusabangsa/ppob/ppob-backend!27
This commit is contained in:
ilham dwi pratama 2021-12-16 08:35:55 +00:00
commit 0c8e13bde8
4 changed files with 48 additions and 27 deletions

View File

@ -1,15 +1,15 @@
import { Roles } from 'src/configurable/entities/roles.entity'; import { Roles } from 'src/configurable/entities/roles.entity';
import { import {
Entity,
Column, Column,
PrimaryGeneratedColumn, Entity,
ManyToOne, ManyToOne,
OneToOne, OneToOne,
PrimaryGeneratedColumn,
} from 'typeorm'; } from 'typeorm';
import { BaseModel } from '../../config/basemodel.entity'; import { BaseModel } from '../../config/basemodel.entity';
import { hashPassword } from '../../helper/hash_password';
import { Partner } from './partner.entity'; import { Partner } from './partner.entity';
import { UserDetail } from './user_detail.entity'; import { UserDetail } from './user_detail.entity';
import { COA } from '../../transaction/entities/coa.entity';
@Entity() @Entity()
export class User extends BaseModel { export class User extends BaseModel {
@ -57,4 +57,9 @@ export class User extends BaseModel {
}, },
) )
partner: Partner; partner: Partner;
@OneToOne(() => UserDetail, (userDetail) => userDetail.user)
userDetail: UserDetail;
coa: COA;
} }

View File

@ -1,12 +1,10 @@
import { import {
Entity,
Column, Column,
PrimaryGeneratedColumn, Entity,
OneToOne,
ManyToOne,
JoinColumn, JoinColumn,
OneToOne,
PrimaryGeneratedColumn,
} from 'typeorm'; } from 'typeorm';
import { accountType } from '../../helper/enum-list';
import { User } from './user.entity'; import { User } from './user.entity';
@Entity() @Entity()
@ -20,7 +18,7 @@ export class UserDetail {
@Column() @Column()
phone_number: string; phone_number: string;
@OneToOne(() => User) @OneToOne(() => User, (user) => user.userDetail)
@JoinColumn() @JoinColumn()
user: User; user: User;
} }

View File

@ -114,14 +114,10 @@ export class UsersController {
@Get() @Get()
async findAll(@Request() req, @Query('page') page: number) { async findAll(@Request() req, @Query('page') page: number) {
const [data, count] = await this.usersService.findAll( const data = await this.usersService.findAll(page, req.user.userId);
page,
req.user.userId,
);
return { return {
data, ...data,
count,
statusCode: HttpStatus.OK, statusCode: HttpStatus.OK,
message: 'success', message: 'success',
}; };

View File

@ -24,6 +24,7 @@ import { RoleService } from 'src/configurable/roles.service';
import { InputCoaDto } from 'src/transaction/dto/input-coa.dto'; import { InputCoaDto } from 'src/transaction/dto/input-coa.dto';
import * as uuid from 'uuid'; import * as uuid from 'uuid';
import { UserDetail } from './entities/user_detail.entity'; import { UserDetail } from './entities/user_detail.entity';
import { COA } from '../transaction/entities/coa.entity';
@Injectable() @Injectable()
export class UsersService { export class UsersService {
@ -112,17 +113,38 @@ export class UsersService {
return userData; return userData;
} }
findAll(page: number, id: string) { async findAll(page: number, id: string) {
return this.usersRepository.findAndCount({ const baseQuery = this.usersRepository
skip: page * 10, .createQueryBuilder('user')
take: 10, .where('user.id != :id', {
order: { id: id,
version: 'DESC', })
}, .leftJoinAndSelect('user.roles', 'roles', `roles.id = user.roles_id`)
where: { .leftJoinAndMapOne(
id: Not(Equal(id)), 'user.user_detail',
}, UserDetail,
}); 'user_detail',
`user_detail.user = user.id`,
)
.select([
'user.id',
'user.username',
'user.isActive',
'roles.name',
'user_detail',
]);
const data = await baseQuery
.skip(page * 10)
.take(10)
.getMany();
const totalData = await baseQuery.getCount();
return {
data,
count: totalData,
};
} }
findByRoles(relationId: string, page: number) { findByRoles(relationId: string, page: number) {
@ -201,7 +223,7 @@ export class UsersService {
where: { where: {
id: id, id: id,
}, },
relations: ['roles', 'superior'], relations: ['roles', 'superior', 'userDetail'],
}); });
return { return {