From b5dcb6d53fc59154bf0d2f64c2459fc292d09f82 Mon Sep 17 00:00:00 2001 From: Pierre Lehnen <55164754+pierre-lehnen-rc@users.noreply.github.com> Date: Wed, 17 Jul 2024 11:55:22 -0300 Subject: [PATCH] feat: VideoConf Persistent Chat (#783) --- .../builders/VideoConferenceBuilder.ts | 12 ++++++++- .../extenders/VideoConferenceExtend.ts | 6 +++++ ...erenceBuilder.IVideoConferenceBuilder.html | 27 ++++++++++++++++++- ...erenceExtend.IVideoConferenceExtender.html | 15 +++++++++++ ...IVideoConfProvider.IVideoConfProvider.html | 18 +++++++------ ...ideoConference.IDirectVideoConference.html | 12 +++++++-- ...VideoConference.IGroupVideoConference.html | 16 ++++++++--- ...eoConference.ILivechatVideoConference.html | 12 +++++++-- ...ces_IVideoConference.IVideoConference.html | 7 +++++ ...Providers_VideoConfData.VideoConfData.html | 2 +- ...s_VideoConfData.VideoConfDataExtended.html | 2 +- ...AppVideoConference.AppVideoConference.html | 2 +- ...nces_IVideoConference.VideoConference.html | 2 +- .../accessors/IVideoConferenceBuilder.ts | 4 +++ .../accessors/IVideoConferenceExtend.ts | 2 ++ .../videoConfProviders/IVideoConfProvider.ts | 2 ++ .../videoConfProviders/VideoConfData.ts | 4 ++- .../videoConferences/AppVideoConference.ts | 2 +- .../videoConferences/IVideoConference.ts | 1 + .../accessors/VideoConferenceBuilder.ts | 10 +++++++ src/server/accessors/VideoConferenceExtend.ts | 6 +++++ .../accessors/VideoConferenceBuilder.spec.ts | 12 +++++++++ .../accessors/VideoConferenceExtend.spec.ts | 10 +++++++ 23 files changed, 162 insertions(+), 24 deletions(-) diff --git a/deno-runtime/lib/accessors/builders/VideoConferenceBuilder.ts b/deno-runtime/lib/accessors/builders/VideoConferenceBuilder.ts index f29c62504..e617cdddf 100644 --- a/deno-runtime/lib/accessors/builders/VideoConferenceBuilder.ts +++ b/deno-runtime/lib/accessors/builders/VideoConferenceBuilder.ts @@ -9,7 +9,7 @@ const { RocketChatAssociationModel } = require('@rocket.chat/apps-engine/definit RocketChatAssociationModel: typeof _RocketChatAssociationModel; }; -export type AppVideoConference = Pick & { +export type AppVideoConference = Pick & { createdBy: IGroupVideoConference['createdBy']['_id']; }; @@ -28,6 +28,7 @@ export class VideoConferenceBuilder implements IVideoConferenceBuilder { createdBy: data.createdBy, providerName: data.providerName!, title: data.title!, + discussionRid: data.discussionRid, }; return this; @@ -78,6 +79,15 @@ export class VideoConferenceBuilder implements IVideoConferenceBuilder { return this.call.title; } + public setDiscussionRid(rid: AppVideoConference['discussionRid']): IVideoConferenceBuilder { + this.call.discussionRid = rid; + return this; + } + + public getDiscussionRid(): AppVideoConference['discussionRid'] { + return this.call.discussionRid; + } + public getVideoConference(): AppVideoConference { return this.call; } diff --git a/deno-runtime/lib/accessors/extenders/VideoConferenceExtend.ts b/deno-runtime/lib/accessors/extenders/VideoConferenceExtend.ts index ff7265ce7..9616bf619 100644 --- a/deno-runtime/lib/accessors/extenders/VideoConferenceExtend.ts +++ b/deno-runtime/lib/accessors/extenders/VideoConferenceExtend.ts @@ -57,6 +57,12 @@ export class VideoConferenceExtender implements IVideoConferenceExtender { return this; } + public setDiscussionRid(rid: VideoConference['discussionRid']): IVideoConferenceExtender { + this.videoConference.discussionRid = rid; + + return this; + } + public getVideoConference(): VideoConference { return structuredClone(this.videoConference); } diff --git a/docs/interfaces/accessors_IVideoConferenceBuilder.IVideoConferenceBuilder.html b/docs/interfaces/accessors_IVideoConferenceBuilder.IVideoConferenceBuilder.html index 0440dc9fb..a131b64fe 100644 --- a/docs/interfaces/accessors_IVideoConferenceBuilder.IVideoConferenceBuilder.html +++ b/docs/interfaces/accessors_IVideoConferenceBuilder.IVideoConferenceBuilder.html @@ -34,6 +34,7 @@

Properties

Methods

+
+ +
+
  • Defined in src/definition/accessors/IVideoConferenceBuilder.ts:33
  • +
    + +
    +
    + +
    @@ -145,6 +159,7 @@

    kind
  • addUser
  • getVideoConference
  • +
  • setDiscussionRid
  • setEndedAt
  • setEndedBy
  • setProviderData
  • diff --git a/docs/interfaces/videoConfProviders_IVideoConfProvider.IVideoConfProvider.html b/docs/interfaces/videoConfProviders_IVideoConfProvider.IVideoConfProvider.html index c879c0fa8..e7762c464 100644 --- a/docs/interfaces/videoConfProviders_IVideoConfProvider.IVideoConfProvider.html +++ b/docs/interfaces/videoConfProviders_IVideoConfProvider.IVideoConfProvider.html @@ -50,7 +50,7 @@

    Methods

    Properties

    -
    capabilities?: {
        cam?: boolean;
        mic?: boolean;
        title?: boolean;
    }
    +
    capabilities?: {
        cam?: boolean;
        mic?: boolean;
        persistentChat?: boolean;
        title?: boolean;
    }

    Type declaration

      @@ -59,6 +59,8 @@
      Optional
      Optional mic?: boolean
    • +
      Optional persistentChat?: boolean
    • +
    • Optional title?: boolean
    @@ -96,7 +98,7 @@
    persis: Returns Promise<string>
    +
  • Defined in src/definition/videoConfProviders/IVideoConfProvider.ts:54
  • +
  • Defined in src/definition/videoConfProviders/IVideoConfProvider.ts:50
  • Returns Promise<IBlock[]>

    +
  • Defined in src/definition/videoConfProviders/IVideoConfProvider.ts:38
  • Returns Promise<boolean>

    +
  • Defined in src/definition/videoConfProviders/IVideoConfProvider.ts:26
  • Returns Promise<void>

    +
  • Defined in src/definition/videoConfProviders/IVideoConfProvider.ts:29
  • Returns Promise<void>

    +
  • Defined in src/definition/videoConfProviders/IVideoConfProvider.ts:35
  • Returns Promise<void>

    +
  • Defined in src/definition/videoConfProviders/IVideoConfProvider.ts:32
  • +
  • Defined in src/definition/videoConferences/IVideoConference.ts:53
  • url?: string
    +
    + +
    discussionRid?: string
    endedAt?: Date
    +
  • Defined in src/definition/videoConferences/IVideoConference.ts:56