174 lines
8.4 KiB
TypeScript
174 lines
8.4 KiB
TypeScript
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
||
// versions:
|
||
// protoc-gen-ts_proto v2.11.8
|
||
// protoc v4.25.9
|
||
// source: glifa/ws/v1/service.proto
|
||
|
||
/* eslint-disable */
|
||
import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices";
|
||
import { Observable } from "rxjs";
|
||
import { RequestMeta } from "../../common/v1/types";
|
||
import { ConnectionInfo, PresenceState, RealtimeEnvelope, TypingState } from "./types";
|
||
|
||
export const protobufPackage = "glifa.ws.v1";
|
||
|
||
export interface RegisterConnectionRequest {
|
||
/** Метаданные запроса, такие как идентификатор корреляции, язык и т.д. */
|
||
meta:
|
||
| RequestMeta
|
||
| undefined;
|
||
/** Токен доступа, который будет использоваться для аутентификации и авторизации соединения */
|
||
accessToken: string;
|
||
/** Уникальный идентификатор соединения, который может быть сгенерирован клиентом или сервером для отслеживания этого соединения */
|
||
connectionId: string;
|
||
/** Идентификатор узла, к которому подключается это соединение, если используется распределенная архитектура с несколькими узлами */
|
||
nodeId: string;
|
||
}
|
||
|
||
export interface RegisterConnectionResponse {
|
||
/** Информация о зарегистрированном соединении, включая его статус и метаданные */
|
||
connection: ConnectionInfo | undefined;
|
||
}
|
||
|
||
export interface UnregisterConnectionRequest {
|
||
/** Метаданные запроса, такие как идентификатор корреляции, язык и т.д. */
|
||
meta:
|
||
| RequestMeta
|
||
| undefined;
|
||
/** Уникальный идентификатор соединения, которое должно быть удалено или разорвано */
|
||
connectionId: string;
|
||
}
|
||
|
||
export interface UnregisterConnectionResponse {
|
||
/** Флаг, указывающий, было ли соединение успешно удалено или разорвано */
|
||
success: boolean;
|
||
}
|
||
|
||
export interface PublishEnvelopeRequest {
|
||
/** Метаданные запроса, такие как идентификатор корреляции, язык и т.д. */
|
||
meta:
|
||
| RequestMeta
|
||
| undefined;
|
||
/** Список UUID пользователей, которые являются целевыми получателями этого сообщения, и которым должно быть доставлено это сообщение */
|
||
targetUserIds: string[];
|
||
/** Список UUID сессий, которые являются целевыми получателями этого сообщения, и которым должно быть доставлено это сообщение */
|
||
targetSessionIds: string[];
|
||
/** Список UUID каналов или тем, на которые подписаны получатели, которым должно быть доставлено это сообщение */
|
||
targetChannelIds: string[];
|
||
/** Конверт в реальном времени, который содержит данные и метаданные сообщения, которое должно быть доставлено получателям */
|
||
envelope: RealtimeEnvelope | undefined;
|
||
}
|
||
|
||
export interface PublishEnvelopeResponse {
|
||
/** Количество целевых получателей, которым было принято это сообщение для доставки (например, количество пользователей, сессий или каналов, которым было отправлено это сообщение) */
|
||
acceptedTargets: number;
|
||
}
|
||
|
||
export interface PublishPresenceRequest {
|
||
/** Метаданные запроса, такие как идентификатор корреляции, язык и т.д. */
|
||
meta:
|
||
| RequestMeta
|
||
| undefined;
|
||
/** Состояние присутствия пользователя, которое должно быть опубликовано и доставлено подписчикам */
|
||
presence: PresenceState | undefined;
|
||
}
|
||
|
||
export interface PublishPresenceResponse {
|
||
/** Флаг, указывающий, было ли состояние присутствия успешно опубликовано и доставлено подписчикам */
|
||
success: boolean;
|
||
}
|
||
|
||
export interface PublishTypingRequest {
|
||
/** Метаданные запроса, такие как идентификатор корреляции, язык и т.д. */
|
||
meta:
|
||
| RequestMeta
|
||
| undefined;
|
||
/** Состояние печати пользователя, которое должно быть опубликовано и доставлено подписчикам */
|
||
typing: TypingState | undefined;
|
||
}
|
||
|
||
export interface PublishTypingResponse {
|
||
/** Флаг, указывающий, было ли состояние печати успешно опубликовано и доставлено подписчикам */
|
||
success: boolean;
|
||
}
|
||
|
||
export interface ListUserConnectionsRequest {
|
||
/** Метаданные запроса, такие как идентификатор корреляции, язык и т.д. */
|
||
meta:
|
||
| RequestMeta
|
||
| undefined;
|
||
/** UUID пользователя, для которого нужно получить список активных соединений */
|
||
userId: string;
|
||
}
|
||
|
||
export interface ListUserConnectionsResponse {
|
||
/** Список активных соединений, связанных с указанным пользователем, включая их статус и метаданные */
|
||
items: ConnectionInfo[];
|
||
}
|
||
|
||
export const GLIFA_WS_V1_PACKAGE_NAME = "glifa.ws.v1";
|
||
|
||
export interface WsGatewayServiceClient {
|
||
registerConnection(request: RegisterConnectionRequest): Observable<RegisterConnectionResponse>;
|
||
|
||
unregisterConnection(request: UnregisterConnectionRequest): Observable<UnregisterConnectionResponse>;
|
||
|
||
publishEnvelope(request: PublishEnvelopeRequest): Observable<PublishEnvelopeResponse>;
|
||
|
||
publishPresence(request: PublishPresenceRequest): Observable<PublishPresenceResponse>;
|
||
|
||
publishTyping(request: PublishTypingRequest): Observable<PublishTypingResponse>;
|
||
|
||
listUserConnections(request: ListUserConnectionsRequest): Observable<ListUserConnectionsResponse>;
|
||
}
|
||
|
||
export interface WsGatewayServiceController {
|
||
registerConnection(
|
||
request: RegisterConnectionRequest,
|
||
): Promise<RegisterConnectionResponse> | Observable<RegisterConnectionResponse> | RegisterConnectionResponse;
|
||
|
||
unregisterConnection(
|
||
request: UnregisterConnectionRequest,
|
||
): Promise<UnregisterConnectionResponse> | Observable<UnregisterConnectionResponse> | UnregisterConnectionResponse;
|
||
|
||
publishEnvelope(
|
||
request: PublishEnvelopeRequest,
|
||
): Promise<PublishEnvelopeResponse> | Observable<PublishEnvelopeResponse> | PublishEnvelopeResponse;
|
||
|
||
publishPresence(
|
||
request: PublishPresenceRequest,
|
||
): Promise<PublishPresenceResponse> | Observable<PublishPresenceResponse> | PublishPresenceResponse;
|
||
|
||
publishTyping(
|
||
request: PublishTypingRequest,
|
||
): Promise<PublishTypingResponse> | Observable<PublishTypingResponse> | PublishTypingResponse;
|
||
|
||
listUserConnections(
|
||
request: ListUserConnectionsRequest,
|
||
): Promise<ListUserConnectionsResponse> | Observable<ListUserConnectionsResponse> | ListUserConnectionsResponse;
|
||
}
|
||
|
||
export function WsGatewayServiceControllerMethods() {
|
||
return function (constructor: Function) {
|
||
const grpcMethods: string[] = [
|
||
"registerConnection",
|
||
"unregisterConnection",
|
||
"publishEnvelope",
|
||
"publishPresence",
|
||
"publishTyping",
|
||
"listUserConnections",
|
||
];
|
||
for (const method of grpcMethods) {
|
||
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
||
GrpcMethod("WsGatewayService", method)(constructor.prototype[method], method, descriptor);
|
||
}
|
||
const grpcStreamMethods: string[] = [];
|
||
for (const method of grpcStreamMethods) {
|
||
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
||
GrpcStreamMethod("WsGatewayService", method)(constructor.prototype[method], method, descriptor);
|
||
}
|
||
};
|
||
}
|
||
|
||
export const WS_GATEWAY_SERVICE_NAME = "WsGatewayService";
|