mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-09-07 14:49:31 -06:00
feat(endpoint): move setPresence endpoint to instance
This commit is contained in:
parent
e58f1d778e
commit
5400f31acb
@ -11,7 +11,6 @@ import {
|
|||||||
ProfileStatusDto,
|
ProfileStatusDto,
|
||||||
ReadMessageDto,
|
ReadMessageDto,
|
||||||
SendPresenceDto,
|
SendPresenceDto,
|
||||||
SetPresenceDto,
|
|
||||||
UpdateMessageDto,
|
UpdateMessageDto,
|
||||||
WhatsAppNumberDto,
|
WhatsAppNumberDto,
|
||||||
} from '../dto/chat.dto';
|
} from '../dto/chat.dto';
|
||||||
@ -86,11 +85,6 @@ export class ChatController {
|
|||||||
return await this.waMonitor.waInstances[instanceName].sendPresence(data);
|
return await this.waMonitor.waInstances[instanceName].sendPresence(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async setPresence({ instanceName }: InstanceDto, data: SetPresenceDto) {
|
|
||||||
logger.verbose('requested sendPresence from ' + instanceName + ' instance');
|
|
||||||
return await this.waMonitor.waInstances[instanceName].setPresence(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
public async fetchPrivacySettings({ instanceName }: InstanceDto) {
|
public async fetchPrivacySettings({ instanceName }: InstanceDto) {
|
||||||
logger.verbose('requested fetchPrivacySettings from ' + instanceName + ' instance');
|
logger.verbose('requested fetchPrivacySettings from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].fetchPrivacySettings();
|
return await this.waMonitor.waInstances[instanceName].fetchPrivacySettings();
|
||||||
|
@ -7,7 +7,7 @@ import { ConfigService, HttpServer, WaBusiness } from '../../config/env.config';
|
|||||||
import { Logger } from '../../config/logger.config';
|
import { Logger } from '../../config/logger.config';
|
||||||
import { BadRequestException, InternalServerErrorException } from '../../exceptions';
|
import { BadRequestException, InternalServerErrorException } from '../../exceptions';
|
||||||
import { RedisCache } from '../../libs/redis.client';
|
import { RedisCache } from '../../libs/redis.client';
|
||||||
import { InstanceDto } from '../dto/instance.dto';
|
import { InstanceDto, SetPresenceDto } from '../dto/instance.dto';
|
||||||
import { RepositoryBroker } from '../repository/repository.manager';
|
import { RepositoryBroker } from '../repository/repository.manager';
|
||||||
import { AuthService, OldToken } from '../services/auth.service';
|
import { AuthService, OldToken } from '../services/auth.service';
|
||||||
import { CacheService } from '../services/cache.service';
|
import { CacheService } from '../services/cache.service';
|
||||||
@ -656,6 +656,11 @@ export class InstanceController {
|
|||||||
return this.waMonitor.instanceInfo();
|
return this.waMonitor.instanceInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async setPresence({ instanceName }: InstanceDto, data: SetPresenceDto) {
|
||||||
|
this.logger.verbose('requested sendPresence from ' + instanceName + ' instance');
|
||||||
|
return await this.waMonitor.waInstances[instanceName].setPresence(data);
|
||||||
|
}
|
||||||
|
|
||||||
public async logout({ instanceName }: InstanceDto) {
|
public async logout({ instanceName }: InstanceDto) {
|
||||||
this.logger.verbose('requested logout from ' + instanceName + ' instance');
|
this.logger.verbose('requested logout from ' + instanceName + ' instance');
|
||||||
const { instance } = await this.connectionState({ instanceName });
|
const { instance } = await this.connectionState({ instanceName });
|
||||||
|
@ -110,10 +110,6 @@ export class SendPresenceDto extends Metadata {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export class SetPresenceDto {
|
|
||||||
presence: WAPresence;
|
|
||||||
}
|
|
||||||
|
|
||||||
export class UpdateMessageDto extends Metadata {
|
export class UpdateMessageDto extends Metadata {
|
||||||
number: string;
|
number: string;
|
||||||
key: proto.IMessageKey;
|
key: proto.IMessageKey;
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
import { WAPresence } from "@whiskeysockets/baileys";
|
||||||
|
|
||||||
export class InstanceDto {
|
export class InstanceDto {
|
||||||
instanceName: string;
|
instanceName: string;
|
||||||
instanceId?: string;
|
instanceId?: string;
|
||||||
@ -40,3 +42,7 @@ export class InstanceDto {
|
|||||||
typebot_listening_from_me?: boolean;
|
typebot_listening_from_me?: boolean;
|
||||||
proxy?: string;
|
proxy?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class SetPresenceDto {
|
||||||
|
presence: WAPresence;
|
||||||
|
}
|
||||||
|
@ -32,7 +32,6 @@ import {
|
|||||||
ProfileStatusDto,
|
ProfileStatusDto,
|
||||||
ReadMessageDto,
|
ReadMessageDto,
|
||||||
SendPresenceDto,
|
SendPresenceDto,
|
||||||
SetPresenceDto,
|
|
||||||
UpdateMessageDto,
|
UpdateMessageDto,
|
||||||
WhatsAppNumberDto,
|
WhatsAppNumberDto,
|
||||||
} from '../dto/chat.dto';
|
} from '../dto/chat.dto';
|
||||||
@ -252,22 +251,6 @@ export class ChatRouter extends RouterBroker {
|
|||||||
|
|
||||||
return res.status(HttpStatus.CREATED).json(response);
|
return res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.post(this.routerPath('setPresence'), ...guards, async (req, res) => {
|
|
||||||
logger.verbose('request received in setPresence');
|
|
||||||
logger.verbose('request body: ');
|
|
||||||
logger.verbose(req.body);
|
|
||||||
|
|
||||||
logger.verbose('request query: ');
|
|
||||||
logger.verbose(req.query);
|
|
||||||
const response = await this.dataValidate<null>({
|
|
||||||
request: req,
|
|
||||||
schema: presenceOnlySchema,
|
|
||||||
ClassRef: SetPresenceDto,
|
|
||||||
execute: (instance, data) => chatController.setPresence(instance, data),
|
|
||||||
});
|
|
||||||
|
|
||||||
return res.status(HttpStatus.CREATED).json(response);
|
|
||||||
})
|
|
||||||
// Profile routes
|
// Profile routes
|
||||||
.get(this.routerPath('fetchPrivacySettings'), ...guards, async (req, res) => {
|
.get(this.routerPath('fetchPrivacySettings'), ...guards, async (req, res) => {
|
||||||
logger.verbose('request received in fetchPrivacySettings');
|
logger.verbose('request received in fetchPrivacySettings');
|
||||||
|
@ -3,9 +3,9 @@ import { RequestHandler, Router } from 'express';
|
|||||||
import { Auth, ConfigService, Database } from '../../config/env.config';
|
import { Auth, ConfigService, Database } from '../../config/env.config';
|
||||||
import { Logger } from '../../config/logger.config';
|
import { Logger } from '../../config/logger.config';
|
||||||
import { dbserver } from '../../libs/db.connect';
|
import { dbserver } from '../../libs/db.connect';
|
||||||
import { instanceNameSchema, oldTokenSchema } from '../../validate/validate.schema';
|
import {instanceNameSchema, oldTokenSchema, presenceOnlySchema} from '../../validate/validate.schema';
|
||||||
import { RouterBroker } from '../abstract/abstract.router';
|
import { RouterBroker } from '../abstract/abstract.router';
|
||||||
import { InstanceDto } from '../dto/instance.dto';
|
import { InstanceDto, SetPresenceDto } from '../dto/instance.dto';
|
||||||
import { OldToken } from '../services/auth.service';
|
import { OldToken } from '../services/auth.service';
|
||||||
import { instanceController } from '../whatsapp.module';
|
import { instanceController } from '../whatsapp.module';
|
||||||
import { HttpStatus } from './index.router';
|
import { HttpStatus } from './index.router';
|
||||||
@ -98,6 +98,22 @@ export class InstanceRouter extends RouterBroker {
|
|||||||
|
|
||||||
return res.status(HttpStatus.OK).json(response);
|
return res.status(HttpStatus.OK).json(response);
|
||||||
})
|
})
|
||||||
|
.post(this.routerPath('setPresence'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in setPresence');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
|
const response = await this.dataValidate<null>({
|
||||||
|
request: req,
|
||||||
|
schema: presenceOnlySchema,
|
||||||
|
ClassRef: SetPresenceDto,
|
||||||
|
execute: (instance, data) => instanceController.setPresence(instance, data),
|
||||||
|
});
|
||||||
|
|
||||||
|
return res.status(HttpStatus.CREATED).json(response);
|
||||||
|
})
|
||||||
.delete(this.routerPath('logout'), ...guards, async (req, res) => {
|
.delete(this.routerPath('logout'), ...guards, async (req, res) => {
|
||||||
logger.verbose('request received in logoutInstances');
|
logger.verbose('request received in logoutInstances');
|
||||||
logger.verbose('request body: ');
|
logger.verbose('request body: ');
|
||||||
|
@ -72,7 +72,6 @@ import {
|
|||||||
PrivacySettingDto,
|
PrivacySettingDto,
|
||||||
ReadMessageDto,
|
ReadMessageDto,
|
||||||
SendPresenceDto,
|
SendPresenceDto,
|
||||||
SetPresenceDto,
|
|
||||||
UpdateMessageDto,
|
UpdateMessageDto,
|
||||||
WhatsAppNumberDto,
|
WhatsAppNumberDto,
|
||||||
} from '../dto/chat.dto';
|
} from '../dto/chat.dto';
|
||||||
@ -90,7 +89,7 @@ import {
|
|||||||
GroupUpdateParticipantDto,
|
GroupUpdateParticipantDto,
|
||||||
GroupUpdateSettingDto,
|
GroupUpdateSettingDto,
|
||||||
} from '../dto/group.dto';
|
} from '../dto/group.dto';
|
||||||
import { InstanceDto } from '../dto/instance.dto';
|
import { InstanceDto, SetPresenceDto } from '../dto/instance.dto';
|
||||||
import { HandleLabelDto, LabelDto } from '../dto/label.dto';
|
import { HandleLabelDto, LabelDto } from '../dto/label.dto';
|
||||||
import {
|
import {
|
||||||
ContactMessage,
|
ContactMessage,
|
||||||
|
Loading…
Reference in New Issue
Block a user