diff --git a/src/definition/accessors/ILivechatCreator.ts b/src/definition/accessors/ILivechatCreator.ts index f9881df1f..d4472e4a4 100644 --- a/src/definition/accessors/ILivechatCreator.ts +++ b/src/definition/accessors/ILivechatCreator.ts @@ -15,7 +15,7 @@ export interface ILivechatCreator { * @param visitor The Livechat Visitor that started the conversation * @param agent The agent responsible for the room */ - createRoom(visitor: IVisitor, agent: IUser, extraParams?: IExtraRoomParams): Promise; + createRoom(visitor: IVisitor, agent?: IUser, extraParams?: IExtraRoomParams): Promise; /** * Creates a Livechat visitor * diff --git a/src/server/accessors/LivechatCreator.ts b/src/server/accessors/LivechatCreator.ts index b94d6f693..8cc8b6c76 100644 --- a/src/server/accessors/LivechatCreator.ts +++ b/src/server/accessors/LivechatCreator.ts @@ -9,8 +9,8 @@ import { AppBridges } from '../bridges'; export class LivechatCreator implements ILivechatCreator { constructor(private readonly bridges: AppBridges, private readonly appId: string) { } - public createRoom(visitor: IVisitor, agent: IUser, extraParams?: IExtraRoomParams): Promise { - return this.bridges.getLivechatBridge().doCreateRoom(visitor, agent, this.appId, extraParams); + public createRoom(visitor: IVisitor, agent?: IUser, extraParams?: IExtraRoomParams): Promise { + return this.bridges.getLivechatBridge().doCreateRoom(visitor, this.appId, agent, extraParams); } public createVisitor(visitor: IVisitor): Promise { diff --git a/src/server/bridges/LivechatBridge.ts b/src/server/bridges/LivechatBridge.ts index edd04f96f..afb9dcb81 100644 --- a/src/server/bridges/LivechatBridge.ts +++ b/src/server/bridges/LivechatBridge.ts @@ -111,9 +111,9 @@ export abstract class LivechatBridge extends BaseBridge { } } - public async doCreateRoom(visitor: IVisitor, agent: IUser, appId: string, extraParams?: IExtraRoomParams): Promise { + public async doCreateRoom(visitor: IVisitor, appId: string, agent?: IUser, extraParams?: IExtraRoomParams): Promise { if (this.hasWritePermission(appId, 'livechat-room')) { - return this.createRoom(visitor, agent, appId, extraParams); + return this.createRoom(visitor, appId, agent, extraParams); } } @@ -174,7 +174,7 @@ export abstract class LivechatBridge extends BaseBridge { protected abstract findVisitorByToken(token: string, appId: string): Promise; protected abstract findVisitorByPhoneNumber(phoneNumber: string, appId: string): Promise; protected abstract transferVisitor(visitor: IVisitor, transferData: ILivechatTransferData, appId: string): Promise; - protected abstract createRoom(visitor: IVisitor, agent: IUser, appId: string, extraParams?: IExtraRoomParams): Promise; + protected abstract createRoom(visitor: IVisitor, appId: string, agent?: IUser, extraParams?: IExtraRoomParams): Promise; protected abstract closeRoom(room: ILivechatRoom, comment: string, closer: IUser | undefined, appId: string): Promise; protected abstract findRooms(visitor: IVisitor, departmentId: string | null, appId: string): Promise>; protected abstract findDepartmentByIdOrName(value: string, appId: string): Promise; diff --git a/tests/test-data/bridges/livechatBridge.ts b/tests/test-data/bridges/livechatBridge.ts index 67faa32e8..1a5c46b7d 100644 --- a/tests/test-data/bridges/livechatBridge.ts +++ b/tests/test-data/bridges/livechatBridge.ts @@ -45,7 +45,7 @@ export class TestLivechatBridge extends LivechatBridge { public findVisitorByPhoneNumber(phoneNumber: string, appId: string): Promise { throw new Error('Method not implemented'); } - public createRoom(visitor: IVisitor, agent: IUser, appId: string, extraParams?: IExtraRoomParams): Promise { + public createRoom(visitor: IVisitor, appId: string, agent?: IUser, extraParams?: IExtraRoomParams): Promise { throw new Error('Method not implemented'); } public closeRoom(room: ILivechatRoom, comment: string, closer: IUser | undefined, appId: string): Promise {