@@ -4,47 +4,52 @@ package decentraland.social_service.v2;
44import "google/protobuf/empty.proto" ;
55
66// Errors
7-
87message InvalidFriendshipAction {}
9-
108message InternalServerError {}
119
1210// Types
13-
1411message User { string address = 1 ; }
1512
16- message RequestResponse {
17- User user = 1 ;
18- int64 created_at = 2 ;
19- optional string message = 3 ;
13+ message Pagination {
14+ int32 limit = 1 ;
15+ int32 offset = 2 ;
2016}
2117
22- message RequestPayload {
18+ message FriendshipRequestResponse {
2319 User user = 1 ;
20+ int64 created_at = 2 ;
2421 optional string message = 3 ;
2522}
2623
27- message Requests {
28- repeated RequestResponse requests = 1 ;
24+ message FriendshipRequests {
25+ repeated FriendshipRequestResponse requests = 1 ;
2926}
3027
31- message AcceptResponse { User user = 1 ; }
32-
33- message AcceptPayload { User user = 1 ; }
34-
35- message RejectResponse { User user = 1 ; }
36-
37- message RejectPayload { User user = 1 ; }
38-
39- message DeleteResponse { User user = 1 ; }
40-
41- message DeletePayload { User user = 1 ; }
28+ enum ConnectivityStatus {
29+ ONLINE = 0 ;
30+ OFFLINE = 1 ;
31+ AWAY = 2 ;
32+ }
4233
43- message CancelResponse { User user = 1 ; }
34+ message GetFriendsPayload {
35+ optional Pagination pagination = 1 ;
36+ optional ConnectivityStatus status = 2 ;
37+ }
4438
45- message CancelPayload { User user = 1 ; }
39+ message GetFriendshipRequestsPayload {
40+ optional Pagination pagination = 1 ;
41+ }
4642
4743message UpsertFriendshipPayload {
44+ message RequestPayload {
45+ User user = 1 ;
46+ optional string message = 3 ;
47+ }
48+ message AcceptPayload { User user = 1 ; }
49+ message RejectPayload { User user = 1 ; }
50+ message DeletePayload { User user = 1 ; }
51+ message CancelPayload { User user = 1 ; }
52+
4853 oneof action {
4954 RequestPayload request = 1 ;
5055 AcceptPayload accept = 2 ;
@@ -54,23 +59,34 @@ message UpsertFriendshipPayload {
5459 }
5560}
5661
57- message MutualFriendsPayload {
62+ message GetMutualFriendsPayload {
5863 User user = 1 ;
64+ optional Pagination pagination = 2 ;
5965}
6066
61- message UsersResponse {
67+ message PaginatedResponse {
68+ int32 total = 1 ;
69+ int32 page = 2 ;
70+ }
71+
72+ message PaginatedUsersResponse {
6273 repeated User users = 1 ;
74+ PaginatedResponse pagination_data = 2 ;
6375}
6476
65- message FriendshipRequestsResponse {
77+ message PaginatedFriendshipRequestsResponse {
6678 oneof response {
67- Requests requests = 1 ;
79+ FriendshipRequests requests = 1 ;
6880 InternalServerError internal_server_error = 2 ;
6981 }
82+ optional PaginatedResponse pagination_data = 3 ;
7083}
7184
7285message UpsertFriendshipResponse {
73- message Accepted {}
86+ message Accepted {
87+ string id = 1 ;
88+ int64 created_at = 2 ;
89+ }
7490 oneof response {
7591 Accepted accepted = 1 ;
7692 InvalidFriendshipAction invalid_friendship_action = 2 ;
@@ -79,28 +95,57 @@ message UpsertFriendshipResponse {
7995}
8096
8197message FriendshipUpdate {
98+ message AcceptResponse { User user = 1 ; }
99+ message RejectResponse { User user = 1 ; }
100+ message DeleteResponse { User user = 1 ; }
101+ message CancelResponse { User user = 1 ; }
102+
82103 oneof update {
83- RequestResponse request = 1 ;
104+ FriendshipRequestResponse request = 1 ;
84105 AcceptResponse accept = 2 ;
85- RejectResponse reject = 4 ;
86- DeleteResponse delete = 5 ;
87- CancelResponse cancel = 6 ;
106+ RejectResponse reject = 3 ;
107+ DeleteResponse delete = 4 ;
108+ CancelResponse cancel = 5 ;
109+ }
110+ }
111+
112+ message GetFriendshipStatusPayload {
113+ User user = 1 ;
114+ }
115+
116+ enum FriendshipStatus {
117+ REQUEST_SENT = 0 ;
118+ REQUEST_RECEIVED = 1 ;
119+ CANCELED = 2 ;
120+ ACCEPTED = 3 ;
121+ REJECTED = 4 ;
122+ DELETED = 5 ;
123+ BLOCKED = 6 ;
124+ }
125+
126+ message GetFriendshipStatusResponse {
127+ message Ok {
128+ FriendshipStatus status = 1 ;
129+ optional string message = 2 ;
130+ }
131+ oneof response {
132+ Ok accepted = 1 ;
133+ InternalServerError internal_server_error = 2 ;
88134 }
89135}
90136
91- // @deprecated, used for initial migration without Matrix
92137service SocialService {
93138 // Get the list of friends for the authenticated user
94- rpc GetFriends (google . protobuf . Empty ) returns (stream UsersResponse ) {}
139+ rpc GetFriends (GetFriendsPayload ) returns (PaginatedUsersResponse ) {}
95140
96141 // Get the list of mutual friends between the authenticated user and the one in the parameter
97- rpc GetMutualFriends (MutualFriendsPayload ) returns (stream UsersResponse ) {}
142+ rpc GetMutualFriends (GetMutualFriendsPayload ) returns (PaginatedUsersResponse ) {}
98143
99144 // Get the pending friendship requests for the authenticated user
100- rpc GetPendingFriendshipRequests (google . protobuf . Empty ) returns (FriendshipRequestsResponse ) {}
145+ rpc GetPendingFriendshipRequests (GetFriendshipRequestsPayload ) returns (PaginatedFriendshipRequestsResponse ) {}
101146
102147 // Get the sent friendship requests for the authenticated user
103- rpc GetSentFriendshipRequests (google . protobuf . Empty ) returns (FriendshipRequestsResponse ) {}
148+ rpc GetSentFriendshipRequests (GetFriendshipRequestsPayload ) returns (PaginatedFriendshipRequestsResponse ) {}
104149
105150 // Create or update friendship status: REQUEST, ACCEPT, REJECT, CANCEL, DELETE
106151 rpc UpsertFriendship (UpsertFriendshipPayload )
@@ -109,4 +154,6 @@ service SocialService {
109154 // Subscribe to updates of friendship status: REQUEST, ACCEPT, REJECT, CANCEL, DELETE
110155 rpc SubscribeToFriendshipUpdates (google .protobuf .Empty )
111156 returns (stream FriendshipUpdate ) {}
157+
158+ rpc GetFriendshipStatus (GetFriendshipStatusPayload ) returns (GetFriendshipStatusResponse ) {}
112159}
0 commit comments