Refacor electron app and add migrations
This commit is contained in:
30
electron/cqrs/commands/handlers/updateUser.ts
Normal file
30
electron/cqrs/commands/handlers/updateUser.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
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<void> {
|
||||
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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user