Skip to content

Commit 00e6147

Browse files
committed
✨ add events/disconnected route
1 parent 9a3eb37 commit 00e6147

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

src/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,10 @@ export function start(
107107
controller.handleConnectedEvent(req, res, next),
108108
);
109109

110+
app.post('/events/disconnected', (req, res, next) =>
111+
controller.handleDisconnectedEvent(req, res, next),
112+
);
113+
110114
app.put('/call-log', (req, res, next) =>
111115
controller.createOrUpdateCallLogsForEntities(req, res, next),
112116
);

src/models/adapter.model.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ export interface Adapter {
8282
type: IntegrationEntityType,
8383
) => Promise<LabeledIntegrationEntity | null>;
8484
handleConnectedEvent?: (config: Config) => Promise<void>;
85+
handleDisconnectedEvent?: (config: Config) => Promise<void>;
8586
getHealth?: () => Promise<void>;
8687
getOAuth2RedirectUrl?: (req?: Request, res?: Response) => Promise<string>;
8788
handleOAuth2Callback?: (

src/models/controller.model.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1093,6 +1093,47 @@ export class Controller {
10931093
}
10941094
}
10951095

1096+
public async handleDisconnectedEvent(
1097+
req: BridgeRequest<unknown>,
1098+
res: Response,
1099+
next: NextFunction,
1100+
): Promise<void> {
1101+
const { providerConfig: { apiKey = '' } = {} } = req;
1102+
try {
1103+
infoLogger('handleDisconnectedEvent', `START`, apiKey);
1104+
1105+
if (!this.adapter.handleDisconnectedEvent) {
1106+
throw new ServerError(
1107+
501,
1108+
'Handling disconnected event is not implemented',
1109+
);
1110+
}
1111+
1112+
if (!req.providerConfig) {
1113+
throw new ServerError(400, 'Missing config parameters');
1114+
}
1115+
infoLogger(
1116+
'handleDisconnectedEvent',
1117+
`Handling disconnected event`,
1118+
apiKey,
1119+
);
1120+
1121+
await this.adapter.handleDisconnectedEvent(req.providerConfig);
1122+
1123+
infoLogger('handleDisconnectedEvent', `END`, apiKey);
1124+
res.status(200).send();
1125+
} catch (error) {
1126+
errorLogger(
1127+
'handleDisconnectedEvent',
1128+
`Could not handle connected event:`,
1129+
apiKey,
1130+
error || 'Unknown',
1131+
);
1132+
errorLogger('handleDisconnectedEvent', 'Entity', apiKey, req.body);
1133+
next(error);
1134+
}
1135+
}
1136+
10961137
/**
10971138
* @deprecated Use createOrUpdateCallLogForEntities instead
10981139
* @param req

0 commit comments

Comments
 (0)