Skip to content

Commit cbbf46c

Browse files
authored
refactor: reorganize social service protos, and remove duplication (#241)
* refactor: reorganize social service protos, and remove duplication * add public social service
1 parent 3614ead commit cbbf46c

File tree

7 files changed

+87
-479
lines changed

7 files changed

+87
-479
lines changed

proto/decentraland/social/friendships/friendships.proto

Lines changed: 0 additions & 162 deletions
This file was deleted.

proto/decentraland/social_service/v2/social_service_v2.proto

Lines changed: 84 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -4,47 +4,52 @@ package decentraland.social_service.v2;
44
import "google/protobuf/empty.proto";
55

66
// Errors
7-
87
message InvalidFriendshipAction {}
9-
108
message InternalServerError {}
119

1210
// Types
13-
1411
message 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

4743
message 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

7285
message 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

8197
message 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
92137
service 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

Comments
 (0)