Skip to content

Commit eaa6fb6

Browse files
committed
refactor: enhance user update logic
1 parent c9ca707 commit eaa6fb6

File tree

4 files changed

+23
-17
lines changed

4 files changed

+23
-17
lines changed

src/modules/users/interfaces/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@ export * from './get-user-accessible-nodes.interface';
22
export * from './get-user-by-unique.interface';
33
export * from './get-user-usage-by-range.interface';
44
export * from './get-users-by-telegram-id-or-email.interface';
5+
export * from './update-user-dto';
56
export * from './user-stats.interface';
67
export * from './user-status-count.interface';
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { BaseUserEntity } from '../entities/base-users.entity';
2+
3+
export interface IUpdateUserDto extends Partial<BaseUserEntity> {
4+
tId: bigint;
5+
activeInternalSquads?: string[];
6+
}

src/modules/users/repositories/users.repository.ts

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { ConfigProfileInboundEntity } from '@modules/config-profiles/entities';
1919
import {
2020
IGetUserAccessibleNodes,
2121
IGetUserAccessibleNodesResponse,
22+
IUpdateUserDto,
2223
IUserOnlineStats,
2324
IUserStats,
2425
} from '../interfaces';
@@ -479,14 +480,8 @@ export class UsersRepository {
479480
}
480481

481482
@Transactional()
482-
public async update(
483-
dto: {
484-
tId: bigint;
485-
activeInternalSquads: string[];
486-
updateInternalSquads: boolean;
487-
} & Partial<BaseUserEntity>,
488-
): Promise<UserEntity | null> {
489-
const { tId, activeInternalSquads, updateInternalSquads, ...data } = dto;
483+
public async update(dto: IUpdateUserDto): Promise<UserEntity | null> {
484+
const { tId, activeInternalSquads, ...data } = dto;
490485

491486
await this.prisma.tx.users.update({
492487
select: {
@@ -496,7 +491,7 @@ export class UsersRepository {
496491
data,
497492
});
498493

499-
if (updateInternalSquads) {
494+
if (activeInternalSquads) {
500495
await this.removeUserFromInternalSquads(tId);
501496
await this.addUserToInternalSquads(tId, activeInternalSquads);
502497
}

src/modules/users/users.service.ts

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,12 @@ import {
4141
BulkUpdateUsersRequestDto,
4242
BulkAllUpdateUsersRequestDto,
4343
} from './dtos';
44-
import { IGetUserByUnique, IGetUsersByTelegramIdOrEmail, IGetUserUsageByRange } from './interfaces';
44+
import {
45+
IGetUserByUnique,
46+
IGetUsersByTelegramIdOrEmail,
47+
IGetUserUsageByRange,
48+
IUpdateUserDto,
49+
} from './interfaces';
4550
import { GetCachedShortUuidRangeQuery } from './queries/get-cached-short-uuid-range';
4651
import { UsersRepository } from './repositories/users.repository';
4752
import { BaseUserEntity, UserEntity } from './entities';
@@ -165,7 +170,6 @@ export class UsersService {
165170

166171
let addToNode = false;
167172
let removeFromNode = false;
168-
let updateInternalSquads = false;
169173

170174
if (user.status !== 'ACTIVE' && status === 'ACTIVE') {
171175
addToNode = true;
@@ -202,6 +206,10 @@ export class UsersService {
202206
}
203207
}
204208

209+
const updateDto: IUpdateUserDto = {
210+
...newUserEntity,
211+
};
212+
205213
if (newActiveInternalSquadsUuids) {
206214
const currentInternalSquadsUuids = user.activeInternalSquads.map(
207215
(squad) => squad.uuid,
@@ -214,17 +222,13 @@ export class UsersService {
214222
);
215223

216224
if (hasChanges) {
217-
updateInternalSquads = true;
225+
updateDto.activeInternalSquads = newActiveInternalSquadsUuids;
218226
removeFromNode = newActiveInternalSquadsUuids.length === 0;
219227
addToNode = newActiveInternalSquadsUuids.length > 0;
220228
}
221229
}
222230

223-
const updatedUser = await this.userRepository.update({
224-
...newUserEntity,
225-
activeInternalSquads: newActiveInternalSquadsUuids || [],
226-
updateInternalSquads,
227-
});
231+
const updatedUser = await this.userRepository.update(updateDto);
228232

229233
if (!updatedUser) {
230234
return fail(ERRORS.UPDATE_USER_ERROR);

0 commit comments

Comments
 (0)