mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-07-14 01:41:24 -06:00
Join in Group by Invite Code
This commit is contained in:
parent
69a323691f
commit
e19e37eef4
@ -46,7 +46,7 @@
|
|||||||
"@figuro/chatwoot-sdk": "^1.1.16",
|
"@figuro/chatwoot-sdk": "^1.1.16",
|
||||||
"@hapi/boom": "^10.0.1",
|
"@hapi/boom": "^10.0.1",
|
||||||
"@sentry/node": "^7.59.2",
|
"@sentry/node": "^7.59.2",
|
||||||
"@whiskeysockets/baileys": "^6.5.0",
|
"@whiskeysockets/baileys": "6.5.0",
|
||||||
"amqplib": "^0.10.3",
|
"amqplib": "^0.10.3",
|
||||||
"aws-sdk": "^2.1499.0",
|
"aws-sdk": "^2.1499.0",
|
||||||
"axios": "^1.3.5",
|
"axios": "^1.3.5",
|
||||||
|
@ -771,6 +771,16 @@ export const groupInviteSchema: JSONSchema7 = {
|
|||||||
...isNotEmpty('inviteCode'),
|
...isNotEmpty('inviteCode'),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const AcceptGroupInviteSchema: JSONSchema7 = {
|
||||||
|
$id: v4(),
|
||||||
|
type: 'object',
|
||||||
|
properties: {
|
||||||
|
inviteCode: { type: 'string', pattern: '^[a-zA-Z0-9]{22}$' },
|
||||||
|
},
|
||||||
|
required: ['inviteCode'],
|
||||||
|
...isNotEmpty('inviteCode'),
|
||||||
|
};
|
||||||
|
|
||||||
export const updateParticipantsSchema: JSONSchema7 = {
|
export const updateParticipantsSchema: JSONSchema7 = {
|
||||||
$id: v4(),
|
$id: v4(),
|
||||||
type: 'object',
|
type: 'object',
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import { Logger } from '../../config/logger.config';
|
import { Logger } from '../../config/logger.config';
|
||||||
import {
|
import {
|
||||||
|
AcceptGroupInvite,
|
||||||
CreateGroupDto,
|
CreateGroupDto,
|
||||||
GetParticipant,
|
GetParticipant,
|
||||||
GroupDescriptionDto,
|
GroupDescriptionDto,
|
||||||
@ -65,6 +66,11 @@ export class GroupController {
|
|||||||
return await this.waMonitor.waInstances[instance.instanceName].sendInvite(data);
|
return await this.waMonitor.waInstances[instance.instanceName].sendInvite(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async acceptInviteCode(instance: InstanceDto, inviteCode: AcceptGroupInvite) {
|
||||||
|
logger.verbose('requested acceptInviteCode from ' + instance.instanceName + ' instance');
|
||||||
|
return await this.waMonitor.waInstances[instance.instanceName].acceptInviteCode(inviteCode);
|
||||||
|
}
|
||||||
|
|
||||||
public async revokeInviteCode(instance: InstanceDto, groupJid: GroupJid) {
|
public async revokeInviteCode(instance: InstanceDto, groupJid: GroupJid) {
|
||||||
logger.verbose('requested revokeInviteCode from ' + instance.instanceName + ' instance');
|
logger.verbose('requested revokeInviteCode from ' + instance.instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instance.instanceName].revokeInviteCode(groupJid);
|
return await this.waMonitor.waInstances[instance.instanceName].revokeInviteCode(groupJid);
|
||||||
|
@ -32,6 +32,10 @@ export class GroupInvite {
|
|||||||
inviteCode: string;
|
inviteCode: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class AcceptGroupInvite {
|
||||||
|
inviteCode: string;
|
||||||
|
}
|
||||||
|
|
||||||
export class GroupSendInvite {
|
export class GroupSendInvite {
|
||||||
groupJid: string;
|
groupJid: string;
|
||||||
description: string;
|
description: string;
|
||||||
|
@ -2,6 +2,7 @@ import { RequestHandler, Router } from 'express';
|
|||||||
|
|
||||||
import { Logger } from '../../config/logger.config';
|
import { Logger } from '../../config/logger.config';
|
||||||
import {
|
import {
|
||||||
|
AcceptGroupInviteSchema,
|
||||||
createGroupSchema,
|
createGroupSchema,
|
||||||
getParticipantsSchema,
|
getParticipantsSchema,
|
||||||
groupInviteSchema,
|
groupInviteSchema,
|
||||||
@ -16,6 +17,7 @@ import {
|
|||||||
} from '../../validate/validate.schema';
|
} from '../../validate/validate.schema';
|
||||||
import { RouterBroker } from '../abstract/abstract.router';
|
import { RouterBroker } from '../abstract/abstract.router';
|
||||||
import {
|
import {
|
||||||
|
AcceptGroupInvite,
|
||||||
CreateGroupDto,
|
CreateGroupDto,
|
||||||
GetParticipant,
|
GetParticipant,
|
||||||
GroupDescriptionDto,
|
GroupDescriptionDto,
|
||||||
@ -182,6 +184,22 @@ export class GroupRouter extends RouterBroker {
|
|||||||
|
|
||||||
res.status(HttpStatus.OK).json(response);
|
res.status(HttpStatus.OK).json(response);
|
||||||
})
|
})
|
||||||
|
.get(this.routerPath('acceptInviteCode'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in acceptInviteCode');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
|
const response = await this.inviteCodeValidate<AcceptGroupInvite>({
|
||||||
|
request: req,
|
||||||
|
schema: AcceptGroupInviteSchema,
|
||||||
|
ClassRef: AcceptGroupInvite,
|
||||||
|
execute: (instance, data) => groupController.acceptInviteCode(instance, data),
|
||||||
|
});
|
||||||
|
|
||||||
|
res.status(HttpStatus.OK).json(response);
|
||||||
|
})
|
||||||
.post(this.routerPath('sendInvite'), ...guards, async (req, res) => {
|
.post(this.routerPath('sendInvite'), ...guards, async (req, res) => {
|
||||||
logger.verbose('request received in sendInvite');
|
logger.verbose('request received in sendInvite');
|
||||||
logger.verbose('request body: ');
|
logger.verbose('request body: ');
|
||||||
|
@ -89,6 +89,7 @@ import {
|
|||||||
WhatsAppNumberDto,
|
WhatsAppNumberDto,
|
||||||
} from '../dto/chat.dto';
|
} from '../dto/chat.dto';
|
||||||
import {
|
import {
|
||||||
|
AcceptGroupInvite,
|
||||||
CreateGroupDto,
|
CreateGroupDto,
|
||||||
GetParticipant,
|
GetParticipant,
|
||||||
GroupDescriptionDto,
|
GroupDescriptionDto,
|
||||||
@ -3744,6 +3745,16 @@ export class WAStartupService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async acceptInviteCode(id: AcceptGroupInvite) {
|
||||||
|
this.logger.verbose('Joining the group by invitation code: ' + id.inviteCode);
|
||||||
|
try {
|
||||||
|
const groupJid = await this.client.groupAcceptInvite(id.inviteCode);
|
||||||
|
return { accepted: true, groupJid: groupJid };
|
||||||
|
} catch (error) {
|
||||||
|
throw new NotFoundException('Accept invite error', error.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public async revokeInviteCode(id: GroupJid) {
|
public async revokeInviteCode(id: GroupJid) {
|
||||||
this.logger.verbose('Revoking invite code for group: ' + id.groupJid);
|
this.logger.verbose('Revoking invite code for group: ' + id.groupJid);
|
||||||
try {
|
try {
|
||||||
|
Loading…
Reference in New Issue
Block a user