@@ -14,11 +14,15 @@ import { APIClass } from '../../../api/server/ApiClass';
1414import type { RateLimiterOptions } from '../../../api/server/api' ;
1515import { API , defaultRateLimiterOptions } from '../../../api/server/api' ;
1616import type { FailureResult , GenericRouteExecutionContext , SuccessResult , UnavailableResult } from '../../../api/server/definition' ;
17+ import { loggerMiddleware } from '../../../api/server/middlewares/logger' ;
18+ import { metricsMiddleware } from '../../../api/server/middlewares/metrics' ;
19+ import { tracerSpanMiddleware } from '../../../api/server/middlewares/tracer' ;
1720import type { WebhookResponseItem } from '../../../lib/server/functions/processWebhookMessage' ;
1821import { processWebhookMessage } from '../../../lib/server/functions/processWebhookMessage' ;
22+ import { metrics } from '../../../metrics/server' ;
1923import { settings } from '../../../settings/server' ;
2024import { IsolatedVMScriptEngine } from '../lib/isolated-vm/isolated-vm' ;
21- import { incomingLogger } from '../logger' ;
25+ import { incomingLogger , integrationLogger } from '../logger' ;
2226import { addOutgoingIntegration } from '../methods/outgoing/addOutgoingIntegration' ;
2327import { deleteOutgoingIntegration } from '../methods/outgoing/deleteOutgoingIntegration' ;
2428
@@ -247,8 +251,9 @@ async function executeIntegrationRest(
247251 return API . v1 . success ( { responses : messageResponse } ) ;
248252 }
249253 return API . v1 . success ( ) ;
250- } catch ( { error, message } : any ) {
251- return API . v1 . failure ( error || message ) ;
254+ } catch ( err : any ) {
255+ incomingLogger . error ( { msg : 'Error processing webhook message' , err } ) ;
256+ return API . v1 . failure ( err ?. error || err ?. message || 'Unknown error' ) ;
252257 }
253258}
254259
@@ -378,6 +383,11 @@ const Api = new WebHookAPI({
378383 prettyJson : process . env . NODE_ENV === 'development' ,
379384} ) ;
380385
386+ Api . router
387+ . use ( loggerMiddleware ( integrationLogger ) )
388+ . use ( metricsMiddleware ( { basePathRegex : new RegExp ( / ^ \/ h o o k s \/ / ) , api : Api , settings, summary : metrics . rocketchatRestApi } ) )
389+ . use ( tracerSpanMiddleware ) ;
390+
381391const middleware = async ( c : Context , next : Next ) : Promise < void > => {
382392 const { req } = c ;
383393 if ( req . raw . headers . get ( 'content-type' ) !== 'application/x-www-form-urlencoded' ) {
0 commit comments