@@ -77,6 +77,7 @@ import {
7777 SendPollDto ,
7878 SendLinkPreviewDto ,
7979 SendStickerDto ,
80+ SendStatusDto ,
8081} from '../dto/sendMessage.dto' ;
8182import { arrayUnique , isBase64 , isURL } from 'class-validator' ;
8283import {
@@ -1098,6 +1099,11 @@ export class WAStartupService {
10981099 return number ;
10991100 }
11001101
1102+ if ( number . includes ( '@broadcast' ) ) {
1103+ this . logger . verbose ( 'Number already contains @broadcast' ) ;
1104+ return number ;
1105+ }
1106+
11011107 const formattedBRNumber = this . formatBRNumber ( number ) ;
11021108 if ( formattedBRNumber !== number ) {
11031109 this . logger . verbose (
@@ -1152,7 +1158,7 @@ export class WAStartupService {
11521158
11531159 const jid = this . createJid ( number ) ;
11541160 const isWA = ( await this . whatsappNumber ( { numbers : [ jid ] } ) ) [ 0 ] ;
1155- if ( ! isWA . exists && ! isJidGroup ( isWA . jid ) ) {
1161+ if ( ! isWA . exists && ! isJidGroup ( isWA . jid ) && ! isWA . jid . includes ( '@broadcast' ) ) {
11561162 throw new BadRequestException ( isWA ) ;
11571163 }
11581164
@@ -1229,7 +1235,8 @@ export class WAStartupService {
12291235 ! message [ 'audio' ] &&
12301236 ! message [ 'poll' ] &&
12311237 ! message [ 'linkPreview' ] &&
1232- ! message [ 'sticker' ]
1238+ ! message [ 'sticker' ] &&
1239+ ! message [ 'status' ]
12331240 ) {
12341241 if ( ! message [ 'audio' ] ) {
12351242 this . logger . verbose ( 'Sending message' ) ;
@@ -1258,6 +1265,21 @@ export class WAStartupService {
12581265 ) ;
12591266 }
12601267
1268+ if ( message [ 'status' ] ) {
1269+ this . logger . verbose ( 'Sending message' ) ;
1270+ return await this . client . sendMessage (
1271+ sender ,
1272+ {
1273+ text : message [ 'status' ] . text ,
1274+ } as unknown as AnyMessageContent ,
1275+ {
1276+ backgroundColor : message [ 'status' ] . backgroundColor ,
1277+ font : message [ 'status' ] . font ,
1278+ statusJidList : message [ 'status' ] . statusJidList ,
1279+ } as unknown as MiscMessageGenerationOptions ,
1280+ ) ;
1281+ }
1282+
12611283 this . logger . verbose ( 'Sending message' ) ;
12621284 return await this . client . sendMessage (
12631285 sender ,
@@ -1335,6 +1357,13 @@ export class WAStartupService {
13351357 ) ;
13361358 }
13371359
1360+ public async statusMessage ( data : SendStatusDto ) {
1361+ this . logger . verbose ( 'Sending status message' ) ;
1362+ return await this . sendMessageWithTyping ( 'status@broadcast' , {
1363+ status : data . statusMessage ,
1364+ } ) ;
1365+ }
1366+
13381367 private async prepareMediaMessage ( mediaMessage : MediaMessage ) {
13391368 try {
13401369 this . logger . verbose ( 'Preparing media message' ) ;
0 commit comments