[core] Add GET /api/:session/chats/:chatId/picture

This commit is contained in:
devlikepro committed 2024-12-24 13:33:40 +07:00
1 parent c9f7814f5d
commit ead61b5e37
2 files changed
+32

No files matched your search

+15
View File
@@ -23,6 +23,8 @@ import { SessionManager } from '../core/abc/manager.abc';
import { WhatsappSession } from '../core/abc/session.abc';
import { parseBool } from '../helpers';
import {
ChatPictureQuery,
ChatPictureResponse,
ChatsPaginationParams,
GetChatMessageQuery,
GetChatMessagesFilter,
@@ -59,6 +61,19 @@ class ChatsController {
return session.deleteChat(chatId);
}
@Get(':chatId/picture')
@SessionApiParam
@ApiOperation({ summary: 'Gets chat picture' })
@UsePipes(new ValidationPipe({ transform: true, whitelist: true }))
async getChatPicture(
@WorkingSessionParam session: WhatsappSession,
@Param('chatId') chatId: string,
@Query() query: ChatPictureQuery,
): Promise<ChatPictureResponse> {
const url = await session.getContactProfilePicture(chatId, query.refresh);
return { url: url };
}
@Get(':chatId/messages')
@SessionApiParam
@ApiOperation({ summary: 'Gets messages in the chat' })
+17
View File
@@ -38,6 +38,23 @@ export class GetChatMessagesFilter {
'filter.fromMe'?: boolean;
}
export class ChatPictureQuery {
@Transform(BooleanString)
@IsBoolean()
@IsOptional()
@ApiProperty({
example: false,
required: false,
description:
'Refresh the picture from the server (24h cache by default). Do not refresh if not needed, you can get rate limit error',
})
refresh?: boolean = false;
}
export class ChatPictureResponse {
url: string;
}
export class GetChatMessagesQuery {
@IsNumber()
@IsOptional()