18 lines
557 B
TypeScript
18 lines
557 B
TypeScript
import { DataSource } from 'typeorm';
|
|
import { MessageEntity } from '../../../entities';
|
|
import { GetMessagesQuery } from '../../types';
|
|
import { rowToMessage } from '../../mappers';
|
|
|
|
export async function handleGetMessages(query: GetMessagesQuery, dataSource: DataSource) {
|
|
const repo = dataSource.getRepository(MessageEntity);
|
|
const { roomId, limit = 100, offset = 0 } = query.payload;
|
|
const rows = await repo.find({
|
|
where: { roomId },
|
|
order: { timestamp: 'ASC' },
|
|
take: limit,
|
|
skip: offset
|
|
});
|
|
|
|
return rows.map(rowToMessage);
|
|
}
|