mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-07-24 17:38:40 -06:00
Merge branch 'release/1.4.7'
This commit is contained in:
commit
d344e513c4
@ -1,3 +1,11 @@
|
|||||||
|
# 1.4.7 (2023-07-27 08:47)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
* Fixed error return bug
|
||||||
|
* Fixed problem of getting message when deleting message in chatwoot
|
||||||
|
* Change in error return pattern
|
||||||
|
|
||||||
# 1.4.6 (2023-07-26 17:54)
|
# 1.4.6 (2023-07-26 17:54)
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "evolution-api",
|
"name": "evolution-api",
|
||||||
"version": "1.4.6",
|
"version": "1.4.7",
|
||||||
"description": "Rest api for communication with WhatsApp",
|
"description": "Rest api for communication with WhatsApp",
|
||||||
"main": "./dist/src/main.js",
|
"main": "./dist/src/main.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@ -46,7 +46,7 @@
|
|||||||
"@figuro/chatwoot-sdk": "^1.1.14",
|
"@figuro/chatwoot-sdk": "^1.1.14",
|
||||||
"@hapi/boom": "^10.0.1",
|
"@hapi/boom": "^10.0.1",
|
||||||
"@sentry/node": "^7.59.2",
|
"@sentry/node": "^7.59.2",
|
||||||
"@whiskeysockets/baileys": "^6.4.0",
|
"@whiskeysockets/baileys": "github:EvolutionAPI/Baileys",
|
||||||
"axios": "^1.3.5",
|
"axios": "^1.3.5",
|
||||||
"class-validator": "^0.13.2",
|
"class-validator": "^0.13.2",
|
||||||
"compression": "^1.7.4",
|
"compression": "^1.7.4",
|
||||||
|
130
src/main.ts
130
src/main.ts
@ -1,6 +1,5 @@
|
|||||||
import 'express-async-errors';
|
import 'express-async-errors';
|
||||||
|
|
||||||
// import * as Sentry from '@sentry/node';
|
|
||||||
import compression from 'compression';
|
import compression from 'compression';
|
||||||
import cors from 'cors';
|
import cors from 'cors';
|
||||||
import express, { json, NextFunction, Request, Response, urlencoded } from 'express';
|
import express, { json, NextFunction, Request, Response, urlencoded } from 'express';
|
||||||
@ -15,94 +14,77 @@ import { HttpStatus, router } from './whatsapp/routers/index.router';
|
|||||||
import { waMonitor } from './whatsapp/whatsapp.module';
|
import { waMonitor } from './whatsapp/whatsapp.module';
|
||||||
|
|
||||||
function initWA() {
|
function initWA() {
|
||||||
waMonitor.loadInstance();
|
waMonitor.loadInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
function bootstrap() {
|
function bootstrap() {
|
||||||
const logger = new Logger('SERVER');
|
const logger = new Logger('SERVER');
|
||||||
const app = express();
|
const app = express();
|
||||||
|
|
||||||
// Sentry.init({
|
app.use(
|
||||||
// dsn: '',
|
cors({
|
||||||
// integrations: [
|
origin(requestOrigin, callback) {
|
||||||
// // enable HTTP calls tracing
|
const { ORIGIN } = configService.get<Cors>('CORS');
|
||||||
// new Sentry.Integrations.Http({ tracing: true }),
|
!requestOrigin ? (requestOrigin = '*') : undefined;
|
||||||
// // enable Express.js middleware tracing
|
if (ORIGIN.indexOf(requestOrigin) !== -1) {
|
||||||
// new Sentry.Integrations.Express({ app }),
|
return callback(null, true);
|
||||||
// // Automatically instrument Node.js libraries and frameworks
|
}
|
||||||
// ...Sentry.autoDiscoverNodePerformanceMonitoringIntegrations(),
|
return callback(new Error('Not allowed by CORS'));
|
||||||
// ],
|
},
|
||||||
|
methods: [...configService.get<Cors>('CORS').METHODS],
|
||||||
|
credentials: configService.get<Cors>('CORS').CREDENTIALS,
|
||||||
|
}),
|
||||||
|
urlencoded({ extended: true, limit: '136mb' }),
|
||||||
|
json({ limit: '136mb' }),
|
||||||
|
compression(),
|
||||||
|
);
|
||||||
|
|
||||||
// // Set tracesSampleRate to 1.0 to capture 100%
|
app.set('view engine', 'hbs');
|
||||||
// // of transactions for performance monitoring.
|
app.set('views', join(ROOT_DIR, 'views'));
|
||||||
// // We recommend adjusting this value in production
|
app.use(express.static(join(ROOT_DIR, 'public')));
|
||||||
// tracesSampleRate: 1.0,
|
|
||||||
// });
|
|
||||||
|
|
||||||
// app.use(Sentry.Handlers.requestHandler());
|
app.use('/', router);
|
||||||
|
|
||||||
// app.use(Sentry.Handlers.tracingHandler());
|
app.use(
|
||||||
|
(err: Error, req: Request, res: Response, next: NextFunction) => {
|
||||||
|
if (err) {
|
||||||
|
return res.status(err['status'] || 500).json({
|
||||||
|
status: 'ERROR',
|
||||||
|
error: err['error'] || 'Internal Server Error',
|
||||||
|
response: {
|
||||||
|
message: err['message'] || 'Internal Server Error',
|
||||||
|
},
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
app.use(
|
next();
|
||||||
cors({
|
},
|
||||||
origin(requestOrigin, callback) {
|
(req: Request, res: Response, next: NextFunction) => {
|
||||||
const { ORIGIN } = configService.get<Cors>('CORS');
|
const { method, url } = req;
|
||||||
!requestOrigin ? (requestOrigin = '*') : undefined;
|
|
||||||
if (ORIGIN.indexOf(requestOrigin) !== -1) {
|
|
||||||
return callback(null, true);
|
|
||||||
}
|
|
||||||
return callback(new Error('Not allowed by CORS'));
|
|
||||||
},
|
|
||||||
methods: [...configService.get<Cors>('CORS').METHODS],
|
|
||||||
credentials: configService.get<Cors>('CORS').CREDENTIALS,
|
|
||||||
}),
|
|
||||||
urlencoded({ extended: true, limit: '136mb' }),
|
|
||||||
json({ limit: '136mb' }),
|
|
||||||
compression(),
|
|
||||||
);
|
|
||||||
|
|
||||||
app.set('view engine', 'hbs');
|
res.status(HttpStatus.NOT_FOUND).json({
|
||||||
app.set('views', join(ROOT_DIR, 'views'));
|
status: HttpStatus.NOT_FOUND,
|
||||||
app.use(express.static(join(ROOT_DIR, 'public')));
|
error: 'Not Found',
|
||||||
|
response: {
|
||||||
|
message: `Cannot ${method.toUpperCase()} ${url}`,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
app.use('/', router);
|
next();
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
// app.use(Sentry.Handlers.errorHandler());
|
const httpServer = configService.get<HttpServer>('SERVER');
|
||||||
|
|
||||||
// app.use(function onError(err, req, res, next) {
|
ServerUP.app = app;
|
||||||
// res.statusCode = 500;
|
const server = ServerUP[httpServer.TYPE];
|
||||||
// res.end(res.sentry + '\n');
|
|
||||||
// });
|
|
||||||
|
|
||||||
app.use(
|
server.listen(httpServer.PORT, () => logger.log(httpServer.TYPE.toUpperCase() + ' - ON: ' + httpServer.PORT));
|
||||||
(err: Error, req: Request, res: Response) => {
|
|
||||||
if (err) {
|
|
||||||
return res.status(err['status'] || 500).json(err);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
(req: Request, res: Response, next: NextFunction) => {
|
|
||||||
const { method, url } = req;
|
|
||||||
|
|
||||||
res.status(HttpStatus.NOT_FOUND).json({
|
initWA();
|
||||||
status: HttpStatus.NOT_FOUND,
|
|
||||||
message: `Cannot ${method.toUpperCase()} ${url}`,
|
|
||||||
error: 'Not Found',
|
|
||||||
});
|
|
||||||
|
|
||||||
next();
|
onUnexpectedError();
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
const httpServer = configService.get<HttpServer>('SERVER');
|
|
||||||
|
|
||||||
ServerUP.app = app;
|
|
||||||
const server = ServerUP[httpServer.TYPE];
|
|
||||||
|
|
||||||
server.listen(httpServer.PORT, () => logger.log(httpServer.TYPE.toUpperCase() + ' - ON: ' + httpServer.PORT));
|
|
||||||
|
|
||||||
initWA();
|
|
||||||
|
|
||||||
onUnexpectedError();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bootstrap();
|
bootstrap();
|
||||||
|
@ -6,7 +6,7 @@ import { validate } from 'jsonschema';
|
|||||||
|
|
||||||
import { Logger } from '../../config/logger.config';
|
import { Logger } from '../../config/logger.config';
|
||||||
import { BadRequestException } from '../../exceptions';
|
import { BadRequestException } from '../../exceptions';
|
||||||
import { GetParticipant, GroupInvite, GroupJid } from '../dto/group.dto';
|
import { GetParticipant, GroupInvite } from '../dto/group.dto';
|
||||||
import { InstanceDto } from '../dto/instance.dto';
|
import { InstanceDto } from '../dto/instance.dto';
|
||||||
|
|
||||||
type DataValidate<T> = {
|
type DataValidate<T> = {
|
||||||
@ -105,7 +105,7 @@ export abstract class RouterBroker {
|
|||||||
const body = request.body;
|
const body = request.body;
|
||||||
|
|
||||||
let groupJid = body?.groupJid;
|
let groupJid = body?.groupJid;
|
||||||
|
|
||||||
if (!groupJid) {
|
if (!groupJid) {
|
||||||
if (request.query?.groupJid) {
|
if (request.query?.groupJid) {
|
||||||
groupJid = request.query.groupJid;
|
groupJid = request.query.groupJid;
|
||||||
@ -113,15 +113,15 @@ export abstract class RouterBroker {
|
|||||||
throw new BadRequestException('The group id needs to be informed in the query', 'ex: "groupJid=120362@g.us"');
|
throw new BadRequestException('The group id needs to be informed in the query', 'ex: "groupJid=120362@g.us"');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!groupJid.endsWith('@g.us')) {
|
if (!groupJid.endsWith('@g.us')) {
|
||||||
groupJid = groupJid + '@g.us';
|
groupJid = groupJid + '@g.us';
|
||||||
}
|
}
|
||||||
|
|
||||||
Object.assign(body, {
|
Object.assign(body, {
|
||||||
groupJid: groupJid
|
groupJid: groupJid,
|
||||||
});
|
});
|
||||||
|
|
||||||
const ref = new ClassRef();
|
const ref = new ClassRef();
|
||||||
|
|
||||||
Object.assign(ref, body);
|
Object.assign(ref, body);
|
||||||
|
@ -12,7 +12,6 @@ export class SettingsController {
|
|||||||
constructor(private readonly settingsService: SettingsService) {}
|
constructor(private readonly settingsService: SettingsService) {}
|
||||||
|
|
||||||
public async createSettings(instance: InstanceDto, data: SettingsDto) {
|
public async createSettings(instance: InstanceDto, data: SettingsDto) {
|
||||||
|
|
||||||
logger.verbose('requested createSettings from ' + instance.instanceName + ' instance');
|
logger.verbose('requested createSettings from ' + instance.instanceName + ' instance');
|
||||||
|
|
||||||
return this.settingsService.create(instance, data);
|
return this.settingsService.create(instance, data);
|
||||||
|
@ -109,7 +109,6 @@ export class RepositoryBroker {
|
|||||||
this.logger.verbose('creating temp dir: ' + tempDir);
|
this.logger.verbose('creating temp dir: ' + tempDir);
|
||||||
fs.mkdirSync(tempDir, { recursive: true });
|
fs.mkdirSync(tempDir, { recursive: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.logger.error(error);
|
this.logger.error(error);
|
||||||
}
|
}
|
||||||
|
@ -940,7 +940,7 @@ export class ChatwootService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.logger.verbose('check if is bot');
|
this.logger.verbose('check if is bot');
|
||||||
if (!body?.conversation || body.private) return { message: 'bot' };
|
if (!body?.conversation || body.private || body.event === 'message_updated') return { message: 'bot' };
|
||||||
|
|
||||||
this.logger.verbose('check if is group');
|
this.logger.verbose('check if is group');
|
||||||
const chatId =
|
const chatId =
|
||||||
|
Loading…
Reference in New Issue
Block a user