import { DataSource } from 'typeorm'; import { UserEntity } from '../../../entities'; import { UpdateUserCommand } from '../../types'; import { applyUpdates, boolToInt, jsonOrNull, TransformMap } from './utils/applyUpdates'; const USER_TRANSFORMS: TransformMap = { isOnline: boolToInt, isAdmin: boolToInt, isRoomOwner: boolToInt, voiceState: jsonOrNull, screenShareState: jsonOrNull }; export async function handleUpdateUser(command: UpdateUserCommand, dataSource: DataSource): Promise { const repo = dataSource.getRepository(UserEntity); const { userId, updates } = command.payload; const existing = await repo.findOne({ where: { id: userId } }); if (!existing) return; applyUpdates(existing, updates, USER_TRANSFORMS); await repo.save(existing); }