RocketChat/Rocket.Chat

View on GitHub
packages/model-typings/src/models/IUsersSessionsModel.ts

Summary

Maintainability
A
0 mins
Test Coverage
import type { IUserSession, IUserSessionConnection } from '@rocket.chat/core-typings';
import type { FindCursor, FindOptions } from 'mongodb';

import type { IBaseModel } from './IBaseModel';

export interface IUsersSessionsModel extends IBaseModel<IUserSession> {
    clearConnectionsFromInstanceId(instanceId: string[]): ReturnType<IBaseModel<IUserSession>['updateMany']>;
    updateConnectionStatusById(uid: string, connectionId: string, status: string): ReturnType<IBaseModel<IUserSession>['updateOne']>;
    removeConnectionsFromInstanceId(instanceId: string): ReturnType<IBaseModel<IUserSession>['updateMany']>;
    removeConnectionByConnectionId(connectionId: string): ReturnType<IBaseModel<IUserSession>['updateMany']>;
    findByInstanceId(instanceId: string): FindCursor<IUserSession>;
    addConnectionById(
        userId: string,
        { id, instanceId, status }: Pick<IUserSessionConnection, 'id' | 'instanceId' | 'status'>,
    ): ReturnType<IBaseModel<IUserSession>['updateOne']>;
    findByOtherInstanceIds(instanceIds: string[], options?: FindOptions<IUserSession>): FindCursor<IUserSession>;
    removeConnectionsFromOtherInstanceIds(instanceIds: string[]): ReturnType<IBaseModel<IUserSession>['updateMany']>;
}