@barumetric/contracts 1.2.13 → 1.2.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/gen/ts/presence.ts +6 -79
- package/package.json +1 -1
- package/proto/presence.proto +2 -48
package/gen/ts/presence.ts
CHANGED
|
@@ -13,33 +13,19 @@ export const protobufPackage = "presence.v1";
|
|
|
13
13
|
|
|
14
14
|
export interface GetUserStatusRequest {
|
|
15
15
|
userId: string;
|
|
16
|
+
/** WebSocket connection ID */
|
|
17
|
+
connectionId?: string | undefined;
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
export interface GetUserStatusResponse {
|
|
19
21
|
/** "online" | "away" | "offline" */
|
|
20
22
|
status: string;
|
|
21
23
|
/** timestamp */
|
|
22
|
-
lastSeen:
|
|
24
|
+
lastSeen:
|
|
25
|
+
| Timestamp
|
|
26
|
+
| undefined;
|
|
23
27
|
/** "web" | "mobile" */
|
|
24
28
|
device: string;
|
|
25
|
-
updatedAt: Timestamp | undefined;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export interface GetUsersStatusRequest {
|
|
29
|
-
userIds: string[];
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export interface GetUsersStatusResponse {
|
|
33
|
-
statuses: UserStatus[];
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export interface UserStatus {
|
|
37
|
-
userId: string;
|
|
38
|
-
/** "online" | "away" | "offline" */
|
|
39
|
-
status: string;
|
|
40
|
-
lastSeen: number;
|
|
41
|
-
device: string;
|
|
42
|
-
updatedAt: Timestamp | undefined;
|
|
43
29
|
}
|
|
44
30
|
|
|
45
31
|
export interface UpdateStatusRequest {
|
|
@@ -67,30 +53,6 @@ export interface RemoveConnectionResponse {
|
|
|
67
53
|
status: string;
|
|
68
54
|
}
|
|
69
55
|
|
|
70
|
-
export interface SubscribeToStatusRequest {
|
|
71
|
-
/** кто подписывается */
|
|
72
|
-
userId: string;
|
|
73
|
-
/** за какими пользователями следить */
|
|
74
|
-
contactIds: string[];
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
export interface StatusUpdate {
|
|
78
|
-
userId: string;
|
|
79
|
-
/** "online" | "away" | "offline" */
|
|
80
|
-
status: string;
|
|
81
|
-
lastSeen: number;
|
|
82
|
-
device: string;
|
|
83
|
-
updatedAt: Timestamp | undefined;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
export interface UnsubscribeFromStatusRequest {
|
|
87
|
-
userId: string;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
export interface UnsubscribeFromStatusResponse {
|
|
91
|
-
ok: boolean;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
56
|
export const PRESENCE_V1_PACKAGE_NAME = "presence.v1";
|
|
95
57
|
|
|
96
58
|
export interface PresenceServiceClient {
|
|
@@ -98,10 +60,6 @@ export interface PresenceServiceClient {
|
|
|
98
60
|
|
|
99
61
|
getUserStatus(request: GetUserStatusRequest): Observable<GetUserStatusResponse>;
|
|
100
62
|
|
|
101
|
-
/** Получить статусы нескольких пользователей */
|
|
102
|
-
|
|
103
|
-
getUsersStatus(request: GetUsersStatusRequest): Observable<GetUsersStatusResponse>;
|
|
104
|
-
|
|
105
63
|
/** Обновить статус пользователя (heartbeat) */
|
|
106
64
|
|
|
107
65
|
updateStatus(request: UpdateStatusRequest): Observable<UpdateStatusResponse>;
|
|
@@ -109,14 +67,6 @@ export interface PresenceServiceClient {
|
|
|
109
67
|
/** Удалить соединение пользователя (при отключении) */
|
|
110
68
|
|
|
111
69
|
removeConnection(request: RemoveConnectionRequest): Observable<RemoveConnectionResponse>;
|
|
112
|
-
|
|
113
|
-
/** Подписаться на изменения статуса (stream) */
|
|
114
|
-
|
|
115
|
-
subscribeToStatus(request: SubscribeToStatusRequest): Observable<StatusUpdate>;
|
|
116
|
-
|
|
117
|
-
/** Отписаться от изменений статуса */
|
|
118
|
-
|
|
119
|
-
unsubscribeFromStatus(request: UnsubscribeFromStatusRequest): Observable<UnsubscribeFromStatusResponse>;
|
|
120
70
|
}
|
|
121
71
|
|
|
122
72
|
export interface PresenceServiceController {
|
|
@@ -126,12 +76,6 @@ export interface PresenceServiceController {
|
|
|
126
76
|
request: GetUserStatusRequest,
|
|
127
77
|
): Promise<GetUserStatusResponse> | Observable<GetUserStatusResponse> | GetUserStatusResponse;
|
|
128
78
|
|
|
129
|
-
/** Получить статусы нескольких пользователей */
|
|
130
|
-
|
|
131
|
-
getUsersStatus(
|
|
132
|
-
request: GetUsersStatusRequest,
|
|
133
|
-
): Promise<GetUsersStatusResponse> | Observable<GetUsersStatusResponse> | GetUsersStatusResponse;
|
|
134
|
-
|
|
135
79
|
/** Обновить статус пользователя (heartbeat) */
|
|
136
80
|
|
|
137
81
|
updateStatus(
|
|
@@ -143,28 +87,11 @@ export interface PresenceServiceController {
|
|
|
143
87
|
removeConnection(
|
|
144
88
|
request: RemoveConnectionRequest,
|
|
145
89
|
): Promise<RemoveConnectionResponse> | Observable<RemoveConnectionResponse> | RemoveConnectionResponse;
|
|
146
|
-
|
|
147
|
-
/** Подписаться на изменения статуса (stream) */
|
|
148
|
-
|
|
149
|
-
subscribeToStatus(request: SubscribeToStatusRequest): Observable<StatusUpdate>;
|
|
150
|
-
|
|
151
|
-
/** Отписаться от изменений статуса */
|
|
152
|
-
|
|
153
|
-
unsubscribeFromStatus(
|
|
154
|
-
request: UnsubscribeFromStatusRequest,
|
|
155
|
-
): Promise<UnsubscribeFromStatusResponse> | Observable<UnsubscribeFromStatusResponse> | UnsubscribeFromStatusResponse;
|
|
156
90
|
}
|
|
157
91
|
|
|
158
92
|
export function PresenceServiceControllerMethods() {
|
|
159
93
|
return function (constructor: Function) {
|
|
160
|
-
const grpcMethods: string[] = [
|
|
161
|
-
"getUserStatus",
|
|
162
|
-
"getUsersStatus",
|
|
163
|
-
"updateStatus",
|
|
164
|
-
"removeConnection",
|
|
165
|
-
"subscribeToStatus",
|
|
166
|
-
"unsubscribeFromStatus",
|
|
167
|
-
];
|
|
94
|
+
const grpcMethods: string[] = ["getUserStatus", "updateStatus", "removeConnection"];
|
|
168
95
|
for (const method of grpcMethods) {
|
|
169
96
|
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
|
170
97
|
GrpcMethod("PresenceService", method)(constructor.prototype[method], method, descriptor);
|
package/package.json
CHANGED
package/proto/presence.proto
CHANGED
|
@@ -8,47 +8,23 @@ service PresenceService {
|
|
|
8
8
|
// Получить статус пользователя
|
|
9
9
|
rpc GetUserStatus (GetUserStatusRequest) returns (GetUserStatusResponse);
|
|
10
10
|
|
|
11
|
-
// Получить статусы нескольких пользователей
|
|
12
|
-
rpc GetUsersStatus (GetUsersStatusRequest) returns (GetUsersStatusResponse);
|
|
13
|
-
|
|
14
11
|
// Обновить статус пользователя (heartbeat)
|
|
15
12
|
rpc UpdateStatus (UpdateStatusRequest) returns (UpdateStatusResponse);
|
|
16
13
|
|
|
17
14
|
// Удалить соединение пользователя (при отключении)
|
|
18
15
|
rpc RemoveConnection (RemoveConnectionRequest) returns (RemoveConnectionResponse);
|
|
19
16
|
|
|
20
|
-
// Подписаться на изменения статуса (stream)
|
|
21
|
-
rpc SubscribeToStatus (SubscribeToStatusRequest) returns (stream StatusUpdate);
|
|
22
|
-
|
|
23
|
-
// Отписаться от изменений статуса
|
|
24
|
-
rpc UnsubscribeFromStatus (UnsubscribeFromStatusRequest) returns (UnsubscribeFromStatusResponse);
|
|
25
17
|
}
|
|
26
18
|
|
|
27
19
|
message GetUserStatusRequest {
|
|
28
20
|
string user_id = 1;
|
|
21
|
+
optional string connection_id = 2; // WebSocket connection ID
|
|
29
22
|
}
|
|
30
23
|
|
|
31
24
|
message GetUserStatusResponse {
|
|
32
25
|
string status = 1; // "online" | "away" | "offline"
|
|
33
|
-
|
|
26
|
+
google.protobuf.Timestamp last_seen = 2; // timestamp
|
|
34
27
|
string device = 3; // "web" | "mobile"
|
|
35
|
-
google.protobuf.Timestamp updated_at = 4;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
message GetUsersStatusRequest {
|
|
39
|
-
repeated string user_ids = 1;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
message GetUsersStatusResponse {
|
|
43
|
-
repeated UserStatus statuses = 1;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
message UserStatus {
|
|
47
|
-
string user_id = 1;
|
|
48
|
-
string status = 2; // "online" | "away" | "offline"
|
|
49
|
-
int64 last_seen = 3;
|
|
50
|
-
string device = 4;
|
|
51
|
-
google.protobuf.Timestamp updated_at = 5;
|
|
52
28
|
}
|
|
53
29
|
|
|
54
30
|
message UpdateStatusRequest {
|
|
@@ -71,25 +47,3 @@ message RemoveConnectionResponse {
|
|
|
71
47
|
bool ok = 1;
|
|
72
48
|
string status = 2; // текущий статус после удаления
|
|
73
49
|
}
|
|
74
|
-
|
|
75
|
-
message SubscribeToStatusRequest {
|
|
76
|
-
string user_id = 1; // кто подписывается
|
|
77
|
-
repeated string contact_ids = 2; // за какими пользователями следить
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
message StatusUpdate {
|
|
81
|
-
string user_id = 1;
|
|
82
|
-
string status = 2; // "online" | "away" | "offline"
|
|
83
|
-
int64 last_seen = 3;
|
|
84
|
-
string device = 4;
|
|
85
|
-
google.protobuf.Timestamp updated_at = 5;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
message UnsubscribeFromStatusRequest {
|
|
89
|
-
string user_id = 1;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
message UnsubscribeFromStatusResponse {
|
|
93
|
-
bool ok = 1;
|
|
94
|
-
}
|
|
95
|
-
|