-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Migrate presence to social service v2
- Loading branch information
1 parent
a0dc57c
commit 64d151b
Showing
2 changed files
with
260 additions
and
90 deletions.
There are no files selected for viewing
222 changes: 222 additions & 0 deletions
222
proto/decentraland/social/friendships/friendships-v2.proto
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,222 @@ | ||
syntax = "proto3"; | ||
package decentraland.social.friendships; | ||
|
||
// *** | ||
// Domain messages | ||
// *** | ||
|
||
message Position { | ||
optional string realm = 1; | ||
optional string x = 2; | ||
optional string y = 3; | ||
} | ||
message Positions { | ||
repeated Position positions = 1; | ||
} | ||
|
||
message User { string address = 1; } | ||
message Users { repeated User users = 1; } | ||
|
||
message RejectResponse { User user = 1; } | ||
message DeleteResponse { User user = 1; } | ||
message AcceptResponse { User user = 1; } | ||
message CancelResponse { User user = 1; } | ||
|
||
message RequestResponse { | ||
User user = 1; | ||
int64 created_at = 2; | ||
optional string message = 3; | ||
} | ||
|
||
message Requests { | ||
int64 total = 1; // Total amount of friendship requests | ||
repeated RequestResponse items = 2; | ||
} | ||
message RequestEvents { | ||
Requests outgoing = 1; // Requests the authed user have sent to users | ||
Requests incoming = 2; // Requests the authed user have received from users | ||
} | ||
|
||
// *** | ||
// Payload | ||
// *** | ||
|
||
message RequestPayload { | ||
User user = 1; | ||
optional string message = 3; | ||
} | ||
message AcceptPayload { User user = 1; } | ||
message RejectPayload { User user = 1; } | ||
message DeletePayload { User user = 1; } | ||
message CancelPayload { User user = 1; } | ||
|
||
message FriendshipEventPayload { | ||
oneof body { | ||
RequestPayload request = 1; | ||
AcceptPayload accept = 2; | ||
RejectPayload reject = 4; | ||
DeletePayload delete = 5; | ||
CancelPayload cancel = 6; | ||
} | ||
} | ||
|
||
message UpdateFriendshipPayload { | ||
FriendshipEventPayload event = 1; | ||
} | ||
|
||
message MutualFriendsPayload { | ||
User user = 1; | ||
} | ||
|
||
message PositionPayload { | ||
optional Position position = 1; | ||
} | ||
|
||
// *** | ||
// Response | ||
// *** | ||
|
||
message BadRequestError { | ||
string message = 1; | ||
} | ||
message UnauthorizedError { | ||
string message = 1; | ||
} | ||
message ForbiddenError { | ||
string message = 1; | ||
} | ||
message TooManyRequestsError { | ||
string message = 1; | ||
} | ||
message InternalServerError { | ||
string message = 1; | ||
} | ||
|
||
// This message is a response that is sent from the server to the client | ||
message FriendshipEventResponse { | ||
oneof body { | ||
RequestResponse request = 1; | ||
AcceptResponse accept = 2; | ||
RejectResponse reject = 4; | ||
DeleteResponse delete = 5; | ||
CancelResponse cancel = 6; | ||
} | ||
} | ||
|
||
message FriendshipEventResponses { | ||
repeated FriendshipEventResponse responses = 1; | ||
} | ||
|
||
message UsersResponse { | ||
oneof response { | ||
Users users = 1; | ||
InternalServerError internal_server_error = 2; | ||
UnauthorizedError unauthorized_error = 3; | ||
ForbiddenError forbidden_error = 4; | ||
TooManyRequestsError too_many_requests_error = 5; | ||
BadRequestError bad_request_error = 6; | ||
} | ||
} | ||
|
||
message PositionResponse { | ||
oneof response { | ||
Position position = 1; | ||
InternalServerError internal_server_error = 2; | ||
UnauthorizedError unauthorized_error = 3; | ||
ForbiddenError forbidden_error = 4; | ||
TooManyRequestsError too_many_requests_error = 5; | ||
BadRequestError bad_request_error = 6; | ||
} | ||
} | ||
|
||
message RequestEventsResponse { | ||
oneof response { | ||
RequestEvents events = 1; | ||
InternalServerError internal_server_error = 2; | ||
UnauthorizedError unauthorized_error = 3; | ||
ForbiddenError forbidden_error = 4; | ||
TooManyRequestsError too_many_requests_error = 5; | ||
} | ||
} | ||
|
||
message UpdateFriendshipResponse { | ||
oneof response { | ||
FriendshipEventResponse event = 1; | ||
InternalServerError internal_server_error = 2; | ||
UnauthorizedError unauthorized_error = 3; | ||
ForbiddenError forbidden_error = 4; | ||
TooManyRequestsError too_many_requests_error = 5; | ||
BadRequestError bad_request_error = 6; | ||
} | ||
} | ||
|
||
message SubscribeFriendshipPresenceUpdatesResponse { | ||
oneof response { | ||
Positions updates = 1; | ||
InternalServerError internal_server_error = 2; | ||
UnauthorizedError unauthorized_error = 3; | ||
ForbiddenError forbidden_error = 4; | ||
TooManyRequestsError too_many_requests_error = 5; | ||
} | ||
} | ||
|
||
message SubscribeFriendshipEventsUpdatesResponse { | ||
oneof response { | ||
FriendshipEventResponses events = 1; | ||
InternalServerError internal_server_error = 2; | ||
UnauthorizedError unauthorized_error = 3; | ||
ForbiddenError forbidden_error = 4; | ||
TooManyRequestsError too_many_requests_error = 5; | ||
} | ||
} | ||
|
||
message LoginPayload { | ||
string auth_chain = 1; | ||
string address = 2; | ||
string timestamp = 3; | ||
} | ||
|
||
message WelcomeMessage { | ||
} | ||
|
||
message LoginResponse { | ||
oneof response { | ||
UnauthorizedError unauthorized_error = 1; | ||
WelcomeMessage welcome_message = 2; | ||
} | ||
} | ||
|
||
message Empty {} | ||
|
||
service FriendshipsService { | ||
|
||
// Login the connection, this message needs to be the first one to send so the conection can be authenticated | ||
rpc Login(LoginPayload) returns (LoginResponse) {} | ||
|
||
// Message to set your position | ||
rpc PositionHeartbeat(PositionPayload) returns (PositionResponse) {} | ||
|
||
// Get the list of friends for the authenticated user | ||
rpc GetFriends(Empty) returns (stream UsersResponse) {} | ||
|
||
// Get the list of online presence friends for the authenticated user | ||
rpc GetOnlineFriends(Empty) returns (stream UsersResponse) {} | ||
|
||
// Get the list of mutual friends between the authenticated user and the one in the parameter | ||
rpc GetMutualFriends(MutualFriendsPayload) returns (stream UsersResponse) {} | ||
|
||
// Get the list of request events for the authenticated user | ||
rpc GetRequestEvents(Empty) returns (RequestEventsResponse) {} | ||
|
||
// Update friendship status: REQUEST, ACCEPT, REJECT, CANCEL, DELETE | ||
rpc UpdateFriendshipEvent(UpdateFriendshipPayload) | ||
returns (UpdateFriendshipResponse) {} | ||
|
||
// Subscribe to updates of friendship status: REQUEST, ACCEPT, REJECT, CANCEL, DELETE | ||
rpc SubscribeFriendshipEventsUpdates(Empty) | ||
returns (stream SubscribeFriendshipEventsUpdatesResponse) {} | ||
|
||
// Subscribe to presence status updates of friends | ||
rpc SubscribeFriendshipPresenceUpdates(Empty) | ||
returns (stream SubscribeFriendshipPresenceUpdatesResponse) {} | ||
} |
Oops, something went wrong.