Skip to content

Commit 42dd280

Browse files
change sendPresence from sendMessage to chat
1 parent 4222c0e commit 42dd280

File tree

8 files changed

+46
-34
lines changed

8 files changed

+46
-34
lines changed

.vscode/settings.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
"editor.smoothScrolling": true,
66
"editor.tabSize": 2,
77
"editor.codeActionsOnSave": {
8-
"source.fixAll.eslint": true,
9-
"source.fixAll": true
8+
"source.fixAll.eslint": "explicit",
9+
"source.fixAll": "explicit"
1010
},
1111
"prisma-smart-formatter.typescript.defaultFormatter": "esbenp.prettier-vscode",
1212
"prisma-smart-formatter.prisma.defaultFormatter": "Prisma.prisma"

src/whatsapp/controllers/chat.controller.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
ProfilePictureDto,
1010
ProfileStatusDto,
1111
ReadMessageDto,
12+
SendPresenceDto,
1213
WhatsAppNumberDto,
1314
} from '../dto/chat.dto';
1415
import { InstanceDto } from '../dto/instance.dto';
@@ -77,6 +78,11 @@ export class ChatController {
7778
return await this.waMonitor.waInstances[instanceName].fetchChats();
7879
}
7980

81+
public async sendPresence({ instanceName }: InstanceDto, data: SendPresenceDto) {
82+
logger.verbose('requested sendPresence from ' + instanceName + ' instance');
83+
return await this.waMonitor.waInstances[instanceName].sendPresence(data);
84+
}
85+
8086
public async fetchPrivacySettings({ instanceName }: InstanceDto) {
8187
logger.verbose('requested fetchPrivacySettings from ' + instanceName + ' instance');
8288
return await this.waMonitor.waInstances[instanceName].fetchPrivacySettings();

src/whatsapp/controllers/sendMessage.controller.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import {
1111
SendLocationDto,
1212
SendMediaDto,
1313
SendPollDto,
14-
SendPresenceDto,
1514
SendReactionDto,
1615
SendStatusDto,
1716
SendStickerDto,
@@ -24,11 +23,6 @@ const logger = new Logger('MessageRouter');
2423
export class SendMessageController {
2524
constructor(private readonly waMonitor: WAMonitoringService) {}
2625

27-
public async sendPresence({ instanceName }: InstanceDto, data: SendPresenceDto) {
28-
logger.verbose('requested sendPresence from ' + instanceName + ' instance');
29-
return await this.waMonitor.waInstances[instanceName].sendPresence(data);
30-
}
31-
3226
public async sendText({ instanceName }: InstanceDto, data: SendTextDto) {
3327
logger.verbose('requested sendText from ' + instanceName + ' instance');
3428
return await this.waMonitor.waInstances[instanceName].textMessage(data);

src/whatsapp/dto/chat.dto.ts

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { proto, WAPrivacyOnlineValue, WAPrivacyValue, WAReadReceiptsValue } from '@whiskeysockets/baileys';
1+
import { proto, WAPresence, WAPrivacyOnlineValue, WAPrivacyValue, WAReadReceiptsValue } from '@whiskeysockets/baileys';
22

33
export class OnWhatsAppDto {
44
constructor(public readonly jid: string, public readonly exists: boolean, public readonly name?: string) {}
@@ -83,3 +83,20 @@ export class DeleteMessage {
8383
remoteJid: string;
8484
participant?: string;
8585
}
86+
export class Options {
87+
delay?: number;
88+
presence?: WAPresence;
89+
}
90+
class OptionsMessage {
91+
options: Options;
92+
}
93+
export class Metadata extends OptionsMessage {
94+
number: string;
95+
}
96+
97+
export class SendPresenceDto extends Metadata {
98+
options: {
99+
presence: WAPresence;
100+
delay: number;
101+
};
102+
}

src/whatsapp/dto/sendMessage.dto.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,7 @@ class PollMessage {
4646
values: string[];
4747
messageSecret?: Uint8Array;
4848
}
49-
export class SendPresenceDto extends Metadata {
50-
options: {
51-
presence: WAPresence;
52-
delay: number;
53-
};
54-
}
49+
5550
export class SendTextDto extends Metadata {
5651
textMessage: TextMessage;
5752
}

src/whatsapp/routers/chat.router.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
deleteMessageSchema,
88
messageUpSchema,
99
messageValidateSchema,
10+
presenceSchema,
1011
privacySettingsSchema,
1112
profileNameSchema,
1213
profilePictureSchema,
@@ -26,6 +27,7 @@ import {
2627
ProfilePictureDto,
2728
ProfileStatusDto,
2829
ReadMessageDto,
30+
SendPresenceDto,
2931
WhatsAppNumberDto,
3032
} from '../dto/chat.dto';
3133
import { InstanceDto } from '../dto/instance.dto';
@@ -228,6 +230,22 @@ export class ChatRouter extends RouterBroker {
228230

229231
return res.status(HttpStatus.OK).json(response);
230232
})
233+
.post(this.routerPath('sendPresence'), ...guards, async (req, res) => {
234+
logger.verbose('request received in sendPresence');
235+
logger.verbose('request body: ');
236+
logger.verbose(req.body);
237+
238+
logger.verbose('request query: ');
239+
logger.verbose(req.query);
240+
const response = await this.dataValidate<null>({
241+
request: req,
242+
schema: presenceSchema,
243+
ClassRef: SendPresenceDto,
244+
execute: (instance, data) => chatController.sendPresence(instance, data),
245+
});
246+
247+
return res.status(HttpStatus.CREATED).json(response);
248+
})
231249
// Profile routes
232250
.get(this.routerPath('fetchPrivacySettings'), ...guards, async (req, res) => {
233251
logger.verbose('request received in fetchPrivacySettings');

src/whatsapp/routers/sendMessage.router.ts

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import {
99
locationMessageSchema,
1010
mediaMessageSchema,
1111
pollMessageSchema,
12-
presenceSchema,
1312
reactionMessageSchema,
1413
statusMessageSchema,
1514
stickerMessageSchema,
@@ -24,7 +23,6 @@ import {
2423
SendLocationDto,
2524
SendMediaDto,
2625
SendPollDto,
27-
SendPresenceDto,
2826
SendReactionDto,
2927
SendStatusDto,
3028
SendStickerDto,
@@ -39,22 +37,6 @@ export class MessageRouter extends RouterBroker {
3937
constructor(...guards: RequestHandler[]) {
4038
super();
4139
this.router
42-
.post(this.routerPath('sendPresence'), ...guards, async (req, res) => {
43-
logger.verbose('request received in sendPresence');
44-
logger.verbose('request body: ');
45-
logger.verbose(req.body);
46-
47-
logger.verbose('request query: ');
48-
logger.verbose(req.query);
49-
const response = await this.dataValidate<null>({
50-
request: req,
51-
schema: presenceSchema,
52-
ClassRef: SendPresenceDto,
53-
execute: (instance, data) => sendMessageController.sendPresence(instance, data),
54-
});
55-
56-
return res.status(HttpStatus.CREATED).json(response);
57-
})
5840
.post(this.routerPath('sendText'), ...guards, async (req, res) => {
5941
logger.verbose('request received in sendText');
6042
logger.verbose('request body: ');

src/whatsapp/services/whatsapp.service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ import {
8383
OnWhatsAppDto,
8484
PrivacySettingDto,
8585
ReadMessageDto,
86+
SendPresenceDto,
8687
WhatsAppNumberDto,
8788
} from '../dto/chat.dto';
8889
import {
@@ -109,7 +110,6 @@ import {
109110
SendLocationDto,
110111
SendMediaDto,
111112
SendPollDto,
112-
SendPresenceDto,
113113
SendReactionDto,
114114
SendStatusDto,
115115
SendStickerDto,

0 commit comments

Comments
 (0)