Skip to content

Commit ad3e03e

Browse files
committed
🏗️ add body type to BridgeRequest
1 parent 562d662 commit ad3e03e

File tree

4 files changed

+32
-32
lines changed

4 files changed

+32
-32
lines changed

src/middlewares/extract-header.middleware.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { BridgeRequest } from "../models";
44
const DEFAULT_LOCALE = "en-GB";
55

66
export function extractHeaderMiddleware(
7-
req: BridgeRequest,
7+
req: BridgeRequest<any>,
88
res: Response,
99
next: NextFunction
1010
): void {

src/models/bridge-request.model.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ import { IntegrationEntityType } from "./integration-entity.model";
22
import { Request } from "express";
33
import { Config } from "./config.model";
44

5-
export interface BridgeRequest extends Request {
5+
export interface BridgeRequest<BodyType> extends Request {
66
providerConfig?: Config;
7+
body: BodyType;
78
}
89

9-
export interface IntegrationEntityBridgeRequest extends BridgeRequest {
10+
export interface IntegrationEntityBridgeRequest extends BridgeRequest<unknown> {
1011
params: { id: string; type: IntegrationEntityType };
1112
}

src/models/controller.model.test.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ import {
77
} from "node-mocks-http";
88
import {
99
CalendarEvent,
10+
CalendarEventTemplate,
1011
CallDirection,
12+
CallEvent,
1113
CallParticipantType,
1214
CallState,
1315
Contact,
@@ -127,7 +129,7 @@ console.log = jest.fn();
127129
jest.useFakeTimers();
128130

129131
describe("getContacts", () => {
130-
let request: MockRequest<BridgeRequest>;
132+
let request: MockRequest<BridgeRequest<unknown>>;
131133
let response: MockResponse<Response>;
132134
let next: jest.Mock;
133135

@@ -230,7 +232,7 @@ describe("getContacts", () => {
230232
});
231233

232234
describe("getCalendarEvents", () => {
233-
let request: MockRequest<BridgeRequest>;
235+
let request: MockRequest<BridgeRequest<unknown>>;
234236
let response: MockResponse<Response>;
235237
let next: jest.Mock;
236238

@@ -298,7 +300,7 @@ describe("getCalendarEvents", () => {
298300
});
299301

300302
describe("createCalendarEvent", () => {
301-
let request: MockRequest<BridgeRequest>;
303+
let request: MockRequest<BridgeRequest<CalendarEventTemplate>>;
302304
let response: MockResponse<Response>;
303305
let next: jest.Mock;
304306

@@ -366,7 +368,7 @@ describe("createCalendarEvent", () => {
366368
});
367369

368370
describe("updateCalendarEvent", () => {
369-
let request: MockRequest<BridgeRequest>;
371+
let request: MockRequest<BridgeRequest<CalendarEventTemplate>>;
370372
let response: MockResponse<Response>;
371373
let next: jest.Mock;
372374

@@ -434,7 +436,7 @@ describe("updateCalendarEvent", () => {
434436
});
435437

436438
describe("deleteCalendarEvent", () => {
437-
let request: MockRequest<BridgeRequest>;
439+
let request: MockRequest<BridgeRequest<unknown>>;
438440
let response: MockResponse<Response>;
439441
let next: jest.Mock;
440442

@@ -481,7 +483,7 @@ describe("deleteCalendarEvent", () => {
481483
});
482484

483485
describe("getOAuth2RedirectUrl", () => {
484-
let request: MockRequest<BridgeRequest>;
486+
let request: MockRequest<BridgeRequest<unknown>>;
485487
let response: MockResponse<Response>;
486488
let next: jest.Mock;
487489

@@ -544,7 +546,7 @@ describe("getOAuth2RedirectUrl", () => {
544546
});
545547

546548
describe("getHealth", () => {
547-
let request: MockRequest<BridgeRequest>;
549+
let request: MockRequest<BridgeRequest<unknown>>;
548550
let response: MockResponse<Response>;
549551
let next: jest.Mock;
550552

@@ -604,7 +606,7 @@ describe("getHealth", () => {
604606
});
605607

606608
describe("handleCallEvent", () => {
607-
let request: MockRequest<BridgeRequest>;
609+
let request: MockRequest<BridgeRequest<CallEvent>>;
608610
let response: MockResponse<Response>;
609611
let next: jest.Mock;
610612

@@ -729,7 +731,7 @@ describe("handleCallEvent", () => {
729731
});
730732

731733
describe("updateCallEvent", () => {
732-
let request: MockRequest<BridgeRequest>;
734+
let request: MockRequest<BridgeRequest<CallEvent>>;
733735
let response: MockResponse<Response>;
734736
let next: jest.Mock;
735737

src/models/controller.model.ts

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export class Controller {
5151
}
5252

5353
public async getContacts(
54-
req: BridgeRequest,
54+
req: BridgeRequest<unknown>,
5555
res: Response,
5656
next: NextFunction
5757
): Promise<void> {
@@ -137,7 +137,7 @@ export class Controller {
137137
}
138138

139139
public async createContact(
140-
req: BridgeRequest,
140+
req: BridgeRequest<ContactTemplate>,
141141
res: Response,
142142
next: NextFunction
143143
): Promise<void> {
@@ -155,7 +155,7 @@ export class Controller {
155155

156156
const contact: Contact = await this.adapter.createContact(
157157
req.providerConfig,
158-
req.body as ContactTemplate
158+
req.body
159159
);
160160

161161
const valid = validate(this.ajv, contactsSchema, [contact]);
@@ -201,7 +201,7 @@ export class Controller {
201201
}
202202

203203
public async updateContact(
204-
req: BridgeRequest,
204+
req: BridgeRequest<ContactUpdate>,
205205
res: Response,
206206
next: NextFunction
207207
): Promise<void> {
@@ -220,7 +220,7 @@ export class Controller {
220220
const contact: Contact = await this.adapter.updateContact(
221221
req.providerConfig,
222222
req.params.id,
223-
req.body as ContactUpdate
223+
req.body
224224
);
225225

226226
const valid = validate(this.ajv, contactsSchema, [contact]);
@@ -265,7 +265,7 @@ export class Controller {
265265
}
266266

267267
public async deleteContact(
268-
req: BridgeRequest,
268+
req: BridgeRequest<unknown>,
269269
res: Response,
270270
next: NextFunction
271271
): Promise<void> {
@@ -315,7 +315,7 @@ export class Controller {
315315
}
316316

317317
public async getCalendarEvents(
318-
req: BridgeRequest,
318+
req: BridgeRequest<unknown>,
319319
res: Response,
320320
next: NextFunction
321321
): Promise<void> {
@@ -372,7 +372,7 @@ export class Controller {
372372
}
373373

374374
public async createCalendarEvent(
375-
req: BridgeRequest,
375+
req: BridgeRequest<CalendarEventTemplate>,
376376
res: Response,
377377
next: NextFunction
378378
): Promise<void> {
@@ -392,10 +392,7 @@ export class Controller {
392392
console.log(`[${anonymizeKey(apiKey)}] Creating calendar event`);
393393

394394
const calendarEvent: CalendarEvent =
395-
await this.adapter.createCalendarEvent(
396-
req.providerConfig,
397-
req.body as CalendarEventTemplate
398-
);
395+
await this.adapter.createCalendarEvent(req.providerConfig, req.body);
399396

400397
const valid = validate(this.ajv, calendarEventsSchema, [calendarEvent]);
401398
if (!valid) {
@@ -417,7 +414,7 @@ export class Controller {
417414
}
418415

419416
public async updateCalendarEvent(
420-
req: BridgeRequest,
417+
req: BridgeRequest<CalendarEventTemplate>,
421418
res: Response,
422419
next: NextFunction
423420
): Promise<void> {
@@ -440,7 +437,7 @@ export class Controller {
440437
await this.adapter.updateCalendarEvent(
441438
req.providerConfig,
442439
req.params.id,
443-
req.body as CalendarEventTemplate
440+
req.body
444441
);
445442

446443
const valid = validate(this.ajv, calendarEventsSchema, [calendarEvent]);
@@ -463,7 +460,7 @@ export class Controller {
463460
}
464461

465462
public async deleteCalendarEvent(
466-
req: BridgeRequest,
463+
req: BridgeRequest<unknown>,
467464
res: Response,
468465
next: NextFunction
469466
): Promise<void> {
@@ -491,7 +488,7 @@ export class Controller {
491488
}
492489

493490
public async handleCallEvent(
494-
req: BridgeRequest,
491+
req: BridgeRequest<CallEvent>,
495492
res: Response,
496493
next: NextFunction
497494
): Promise<void> {
@@ -506,7 +503,7 @@ export class Controller {
506503
throw new ServerError(501, "Handling call event is not implemented");
507504
}
508505

509-
if (shouldSkipCallEvent(req.body as CallEvent)) {
506+
if (shouldSkipCallEvent(req.body)) {
510507
infoLogger(
511508
`Skipping call event for call id ${req.body.id}`,
512509
providerConfig
@@ -534,7 +531,7 @@ export class Controller {
534531
}
535532

536533
public async handleConnectedEvent(
537-
req: BridgeRequest,
534+
req: BridgeRequest<unknown>,
538535
res: Response,
539536
next: NextFunction
540537
): Promise<void> {
@@ -563,7 +560,7 @@ export class Controller {
563560
}
564561

565562
public async updateCallEvent(
566-
req: BridgeRequest,
563+
req: BridgeRequest<CallEvent>,
567564
res: Response,
568565
next: NextFunction
569566
): Promise<void> {
@@ -619,7 +616,7 @@ export class Controller {
619616
}
620617

621618
public async getHealth(
622-
req: BridgeRequest,
619+
req: BridgeRequest<unknown>,
623620
res: Response,
624621
next: NextFunction
625622
): Promise<void> {

0 commit comments

Comments
 (0)