chore: change method call to get by visitor (#33664)

pull/33669/head^2
Gustavo Reis Bauer 1 year ago committed by GitHub
parent e6b4f09d84
commit 193b3aa759
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 5
      apps/meteor/app/apps/server/bridges/contact.ts
  2. 4
      packages/apps-engine/src/definition/accessors/IContactRead.ts
  3. 6
      packages/apps-engine/src/server/accessors/ContactRead.ts
  4. 7
      packages/apps-engine/src/server/bridges/ContactBridge.ts
  5. 4
      packages/apps-engine/tests/test-data/bridges/contactBridge.ts

@ -1,6 +1,7 @@
import type { IAppServerOrchestrator } from '@rocket.chat/apps';
import type { ILivechatContact } from '@rocket.chat/apps-engine/definition/livechat';
import { ContactBridge } from '@rocket.chat/apps-engine/server/bridges';
import type { IVisitor } from '@rocket.chat/core-typings';
import { LivechatContacts } from '@rocket.chat/models';
import { addContactEmail, verifyContactChannel } from '../../../livechat/server/lib/Contacts';
@ -10,9 +11,9 @@ export class AppContactBridge extends ContactBridge {
super();
}
async getById(id: ILivechatContact['_id'], appId: string): Promise<ILivechatContact | null> {
async getByVisitorId(visitorId: IVisitor['_id'], appId: string): Promise<ILivechatContact | null> {
this.orch.debugLog(`The app ${appId} is fetching a contact`);
return LivechatContacts.findOneById(id);
return LivechatContacts.findOneByVisitorId<ILivechatContact>(visitorId);
}
async verifyContact(

@ -1,5 +1,5 @@
import type { ILivechatContact } from '../livechat';
import type { ILivechatContact, IVisitor } from '../livechat';
export interface IContactRead {
getById(id: ILivechatContact['_id']): Promise<ILivechatContact | null>;
getByVisitorId(visitorId: IVisitor['id']): Promise<ILivechatContact | null>;
}

@ -1,11 +1,11 @@
import type { IContactRead } from '../../definition/accessors/IContactRead';
import type { ILivechatContact } from '../../definition/livechat';
import type { ILivechatContact, IVisitor } from '../../definition/livechat';
import type { AppBridges } from '../bridges';
export class ContactRead implements IContactRead {
constructor(private readonly bridges: AppBridges, private readonly appId: string) {}
public getById(id: ILivechatContact['_id']): Promise<ILivechatContact | null> {
return this.bridges.getContactBridge().doGetById(id, this.appId);
public getByVisitorId(visitorId: IVisitor['id']): Promise<ILivechatContact | null> {
return this.bridges.getContactBridge().doGetByVisitorId(visitorId, this.appId);
}
}

@ -1,3 +1,4 @@
import type { IVisitor } from '../../definition/livechat';
import type { ILivechatContact } from '../../definition/livechat/ILivechatContact';
import { PermissionDeniedError } from '../errors/PermissionDeniedError';
import { AppPermissionManager } from '../managers/AppPermissionManager';
@ -13,9 +14,9 @@ export type VerifyContactChannelParams = {
};
export abstract class ContactBridge extends BaseBridge {
public async doGetById(id: ILivechatContact['_id'], appId: string): Promise<ILivechatContact | null> {
public async doGetByVisitorId(visitorId: IVisitor['id'], appId: string): Promise<ILivechatContact | null> {
if (this.hasReadPermission(appId)) {
return this.getById(id, appId);
return this.getByVisitorId(visitorId, appId);
}
}
@ -31,7 +32,7 @@ export abstract class ContactBridge extends BaseBridge {
}
}
protected abstract getById(id: ILivechatContact['_id'], appId: string): Promise<ILivechatContact | null>;
protected abstract getByVisitorId(visitorId: IVisitor['id'], appId: string): Promise<ILivechatContact | null>;
protected abstract verifyContact(verifyContactChannelParams: VerifyContactChannelParams, appId: string): Promise<void>;

@ -1,4 +1,4 @@
import type { ILivechatContact } from '../../../src/definition/livechat';
import type { ILivechatContact, IVisitor } from '../../../src/definition/livechat';
import { ContactBridge } from '../../../src/server/bridges';
export class TestContactBridge extends ContactBridge {
@ -6,7 +6,7 @@ export class TestContactBridge extends ContactBridge {
throw new Error('Method not implemented.');
}
protected getById(id: ILivechatContact['_id']): Promise<ILivechatContact> {
protected getByVisitorId(id: IVisitor['id']): Promise<ILivechatContact> {
throw new Error('Method not implemented.');
}

Loading…
Cancel
Save