1 parent
4c5c977310
commit
3ead3a0ba3
5 files changed
+56
-5
No files matched your search
@@ -2,7 +2,7 @@ import {Body, Controller, Get, Post, Put, Query} from '@nestjs/common';
|
||||
import {ApiOperation, ApiSecurity, ApiTags} from "@nestjs/swagger";
|
||||
import {
|
||||
ChatRequest,
|
||||
CheckNumberStatusQuery,
|
||||
CheckNumberStatusQuery, GetMessageQuery,
|
||||
MessageContactVcardRequest,
|
||||
MessageFileRequest,
|
||||
MessageImageRequest,
|
||||
@@ -131,4 +131,11 @@ export class ChattingController {
|
||||
const whatsapp = this.manager.getSession(request.session)
|
||||
return whatsapp.setReaction(request)
|
||||
}
|
||||
|
||||
@Get('/messages')
|
||||
@ApiOperation({summary: 'Get messages in a chat'})
|
||||
getMessages( @Query() query: GetMessageQuery ) {
|
||||
const whatsapp = this.manager.getSession(query.session)
|
||||
return whatsapp.getMessages(query)
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@ import {WAEvents, WhatsappStatus} from "../../structures/enums.dto";
|
||||
import {ConsoleLogger} from "@nestjs/common";
|
||||
import {
|
||||
ChatRequest,
|
||||
CheckNumberStatusQuery,
|
||||
CheckNumberStatusQuery, GetMessageQuery,
|
||||
MessageContactVcardRequest,
|
||||
MessageFileRequest,
|
||||
MessageImageRequest,
|
||||
@@ -115,8 +115,11 @@ export abstract class WhatsappSession {
|
||||
|
||||
abstract stopTyping(chat: ChatRequest)
|
||||
|
||||
abstract getMessages(query: GetMessageQuery)
|
||||
|
||||
abstract setReaction(request: MessageReactionRequest)
|
||||
|
||||
|
||||
/**
|
||||
* Contacts methods
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@ import {WhatsappSession} from "./abc/session.abc";
|
||||
import {
|
||||
Button,
|
||||
ChatRequest,
|
||||
CheckNumberStatusQuery,
|
||||
CheckNumberStatusQuery, GetMessageQuery,
|
||||
MessageContactVcardRequest,
|
||||
MessageFileRequest,
|
||||
MessageImageRequest,
|
||||
@@ -192,6 +192,20 @@ export class WhatsappSessionVenomCore extends WhatsappSession {
|
||||
return this.whatsapp.stopTyping(chat.chatId)
|
||||
}
|
||||
|
||||
async getMessages(query: GetMessageQuery){
|
||||
const messages = await this.whatsapp.getAllMessagesInChat(query.chatId, true, false)
|
||||
// Go over messages, download media, and convert to right format.
|
||||
const result = []
|
||||
for (const [count, message] of messages.entries()) {
|
||||
if (count > query.limit){
|
||||
// Have enough in the list, stop processing
|
||||
break
|
||||
}
|
||||
result.push(await this.processIncomingMessage(message))
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
setReaction(request: MessageReactionRequest) {
|
||||
throw new NotImplementedByEngineError()
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import {WAMessage, WANumberExistResult} from "../structures/responses.dto";
|
||||
import {
|
||||
ChatRequest,
|
||||
CheckNumberStatusQuery,
|
||||
GetMessageQuery,
|
||||
MessageContactVcardRequest,
|
||||
MessageFileRequest,
|
||||
MessageImageRequest,
|
||||
@@ -141,6 +142,19 @@ export class WhatsappSessionWebJSCore extends WhatsappSession {
|
||||
await chat.clearState()
|
||||
}
|
||||
|
||||
async getMessages(query: GetMessageQuery) {
|
||||
const chat: Chat = await this.whatsapp.getChatById(this.ensureSuffix(query.chatId))
|
||||
const messages = await chat.fetchMessages({
|
||||
limit: query.limit,
|
||||
})
|
||||
// Go over messages, download media, and convert to right format.
|
||||
const result = []
|
||||
for (const message of messages) {
|
||||
result.push(await this.processIncomingMessage(message))
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
async setReaction(request: MessageReactionRequest) {
|
||||
const messageId = this.deserializeId(request.messageId)
|
||||
console.log(messageId)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import {IsNotEmpty, IsString} from "class-validator";
|
||||
import {IsNotEmpty, IsString, IsOptional, IsNumber} from "class-validator";
|
||||
import {ApiExtraModels, ApiProperty, getSchemaPath} from "@nestjs/swagger";
|
||||
import {SessionBaseRequest, SessionQuery} from "./base.dto";
|
||||
|
||||
@@ -18,6 +18,18 @@ export class MessageTextQuery extends SessionQuery {
|
||||
text: string
|
||||
}
|
||||
|
||||
export class ChatQuery extends SessionQuery {
|
||||
@ApiProperty({
|
||||
example: '11111111111@c.us',
|
||||
})
|
||||
chatId: string
|
||||
}
|
||||
|
||||
export class GetMessageQuery extends ChatQuery {
|
||||
@IsNumber()
|
||||
limit: number
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Requests
|
||||
@@ -29,7 +41,7 @@ export class ChatRequest extends SessionBaseRequest {
|
||||
chatId: string
|
||||
}
|
||||
|
||||
export class MessageRequest extends SessionBaseRequest{
|
||||
export class MessageRequest extends SessionBaseRequest {
|
||||
@ApiProperty({
|
||||
example: "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA",
|
||||
})
|
||||
@@ -186,3 +198,4 @@ export class MessageReactionRequest extends MessageRequest {
|
||||
})
|
||||
reaction: string
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user