19 lines
615 B
TypeScript
19 lines
615 B
TypeScript
import { DataSource } from 'typeorm';
|
|
import { RoomEntity } from '../../../entities';
|
|
import { GetRoomQuery } from '../../types';
|
|
import { rowToRoom } from '../../mappers';
|
|
import { loadRoomRelationsMap } from '../../relations';
|
|
|
|
export async function handleGetRoom(query: GetRoomQuery, dataSource: DataSource) {
|
|
const repo = dataSource.getRepository(RoomEntity);
|
|
const row = await repo.findOne({ where: { id: query.payload.roomId } });
|
|
|
|
if (!row) {
|
|
return null;
|
|
}
|
|
|
|
const relationsByRoomId = await loadRoomRelationsMap(dataSource, [row.id]);
|
|
|
|
return rowToRoom(row, relationsByRoomId.get(row.id));
|
|
}
|