RocketChat/Rocket.Chat

View on GitHub
apps/meteor/ee/server/local-services/federation/domain/IFederationBridge.ts

Summary

Maintainability
A
0 mins
Test Coverage
import type { RoomType } from '@rocket.chat/core-typings';

import type { IFederationBridge } from '../../../../../server/services/federation/domain/IFederationBridge';

interface IFederationPaginationParams {
    limit?: number;
    pageToken?: string;
}

export interface IFederationSearchPublicRoomsParams extends IFederationPaginationParams {
    serverName: string;
    roomName?: string;
}

interface IFederationPaginationResult {
    next_batch?: string;
    prev_batch?: string;
}

interface IFederationPublicRooms {
    canonical_alias: string;
    name: string;
    num_joined_members: number;
    room_id: string;
    topic?: string;
    world_readable: boolean;
    guest_can_join: boolean;
    join_rule: string;
    avatar_url?: string;
}

export interface IFederationPublicRoomsResult extends IFederationPaginationResult {
    chunk: IFederationPublicRooms[];
    total_room_count_estimate: number;
}

export interface IFederationBridgeEE extends IFederationBridge {
    createRoom(externalCreatorId: string, roomType: RoomType, roomName: string, roomTopic?: string): Promise<string>;
    searchPublicRooms(params: IFederationSearchPublicRoomsParams): Promise<IFederationPublicRoomsResult>;
}