mirror of
https://github.com/Alexander-D-Karpov/concord.git
synced 2026-03-16 22:04:15 +03:00
146 lines
3.4 KiB
Protocol Buffer
146 lines
3.4 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package concord.friends.v1;
|
|
|
|
option go_package = "github.com/Alexander-D-Karpov/concord/api/gen/go/friends/v1;friendsv1";
|
|
|
|
import "google/api/annotations.proto";
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
enum FriendRequestStatus {
|
|
FRIEND_REQUEST_STATUS_UNSPECIFIED = 0;
|
|
FRIEND_REQUEST_STATUS_PENDING = 1;
|
|
FRIEND_REQUEST_STATUS_ACCEPTED = 2;
|
|
FRIEND_REQUEST_STATUS_REJECTED = 3;
|
|
}
|
|
|
|
message FriendRequest {
|
|
string id = 1;
|
|
string from_user_id = 2;
|
|
string to_user_id = 3;
|
|
FriendRequestStatus status = 4;
|
|
google.protobuf.Timestamp created_at = 5;
|
|
google.protobuf.Timestamp updated_at = 6;
|
|
string from_handle = 7;
|
|
string from_display_name = 8;
|
|
string from_avatar_url = 9;
|
|
string to_handle = 10;
|
|
string to_display_name = 11;
|
|
string to_avatar_url = 12;
|
|
}
|
|
|
|
message Friend {
|
|
string user_id = 1;
|
|
string handle = 2;
|
|
string display_name = 3;
|
|
string avatar_url = 4;
|
|
string status = 5;
|
|
google.protobuf.Timestamp friends_since = 6;
|
|
}
|
|
|
|
message SendFriendRequestRequest {
|
|
string user_id = 1;
|
|
}
|
|
|
|
message SendFriendRequestResponse {
|
|
FriendRequest request = 1;
|
|
}
|
|
|
|
message AcceptFriendRequestRequest {
|
|
string request_id = 1;
|
|
}
|
|
|
|
message RejectFriendRequestRequest {
|
|
string request_id = 1;
|
|
}
|
|
|
|
message CancelFriendRequestRequest {
|
|
string request_id = 1;
|
|
}
|
|
|
|
message RemoveFriendRequest {
|
|
string user_id = 1;
|
|
}
|
|
|
|
message ListFriendsRequest {}
|
|
|
|
message ListFriendsResponse {
|
|
repeated Friend friends = 1;
|
|
}
|
|
|
|
message ListPendingRequestsRequest {}
|
|
|
|
message ListPendingRequestsResponse {
|
|
repeated FriendRequest incoming = 1;
|
|
repeated FriendRequest outgoing = 2;
|
|
}
|
|
|
|
message BlockUserRequest {
|
|
string user_id = 1;
|
|
}
|
|
|
|
message UnblockUserRequest {
|
|
string user_id = 1;
|
|
}
|
|
|
|
message ListBlockedUsersRequest {}
|
|
|
|
message ListBlockedUsersResponse {
|
|
repeated string user_ids = 1;
|
|
}
|
|
|
|
message EmptyResponse {}
|
|
|
|
service FriendsService {
|
|
rpc SendFriendRequest(SendFriendRequestRequest) returns (SendFriendRequestResponse) {
|
|
option (google.api.http) = {
|
|
post: "/v1/friends/requests"
|
|
body: "*"
|
|
};
|
|
}
|
|
rpc AcceptFriendRequest(AcceptFriendRequestRequest) returns (EmptyResponse) {
|
|
option (google.api.http) = {
|
|
post: "/v1/friends/requests/{request_id}/accept"
|
|
};
|
|
}
|
|
rpc RejectFriendRequest(RejectFriendRequestRequest) returns (EmptyResponse) {
|
|
option (google.api.http) = {
|
|
post: "/v1/friends/requests/{request_id}/reject"
|
|
};
|
|
}
|
|
rpc CancelFriendRequest(CancelFriendRequestRequest) returns (EmptyResponse) {
|
|
option (google.api.http) = {
|
|
delete: "/v1/friends/requests/{request_id}"
|
|
};
|
|
}
|
|
rpc RemoveFriend(RemoveFriendRequest) returns (EmptyResponse) {
|
|
option (google.api.http) = {
|
|
delete: "/v1/friends/{user_id}"
|
|
};
|
|
}
|
|
rpc ListFriends(ListFriendsRequest) returns (ListFriendsResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v1/friends"
|
|
};
|
|
}
|
|
rpc ListPendingRequests(ListPendingRequestsRequest) returns (ListPendingRequestsResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v1/friends/requests"
|
|
};
|
|
}
|
|
rpc BlockUser(BlockUserRequest) returns (EmptyResponse) {
|
|
option (google.api.http) = {
|
|
post: "/v1/users/{user_id}/block"
|
|
};
|
|
}
|
|
rpc UnblockUser(UnblockUserRequest) returns (EmptyResponse) {
|
|
option (google.api.http) = {
|
|
delete: "/v1/users/{user_id}/block"
|
|
};
|
|
}
|
|
rpc ListBlockedUsers(ListBlockedUsersRequest) returns (ListBlockedUsersResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v1/users/blocked"
|
|
};
|
|
}
|
|
} |