mirror of
https://github.com/Alexander-D-Karpov/concord.git
synced 2026-03-16 22:04:15 +03:00
134 lines
3.1 KiB
Protocol Buffer
134 lines
3.1 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package concord.membership.v1;
|
|
|
|
option go_package = "github.com/Alexander-D-Karpov/concord/api/gen/go/membership/v1;membershipv1";
|
|
|
|
import "google/api/annotations.proto";
|
|
import "google/protobuf/timestamp.proto";
|
|
import "common/v1/types.proto";
|
|
|
|
message InviteRequest {
|
|
string room_id = 1;
|
|
string user_id = 2;
|
|
}
|
|
|
|
message RemoveRequest {
|
|
string room_id = 1;
|
|
string user_id = 2;
|
|
}
|
|
|
|
message SetRoleRequest {
|
|
string room_id = 1;
|
|
string user_id = 2;
|
|
concord.common.v1.Role role = 3;
|
|
}
|
|
|
|
message SetNicknameRequest {
|
|
string room_id = 1;
|
|
string nickname = 2;
|
|
}
|
|
|
|
message ListMembersRequest {
|
|
string room_id = 1;
|
|
}
|
|
|
|
message ListMembersResponse {
|
|
repeated concord.common.v1.Member members = 1;
|
|
}
|
|
|
|
message EmptyResponse {}
|
|
|
|
enum RoomInviteStatus {
|
|
ROOM_INVITE_STATUS_UNSPECIFIED = 0;
|
|
ROOM_INVITE_STATUS_PENDING = 1;
|
|
ROOM_INVITE_STATUS_ACCEPTED = 2;
|
|
ROOM_INVITE_STATUS_REJECTED = 3;
|
|
}
|
|
|
|
message RoomInvite {
|
|
string id = 1;
|
|
string room_id = 2;
|
|
string room_name = 3;
|
|
string invited_user_id = 4;
|
|
string invited_by = 5;
|
|
RoomInviteStatus status = 6;
|
|
google.protobuf.Timestamp created_at = 7;
|
|
google.protobuf.Timestamp updated_at = 8;
|
|
string invited_user_handle = 9;
|
|
string invited_user_display_name = 10;
|
|
string invited_user_avatar_url = 11;
|
|
string inviter_handle = 12;
|
|
string inviter_display_name = 13;
|
|
string inviter_avatar_url = 14;
|
|
}
|
|
|
|
message AcceptRoomInviteRequest {
|
|
string invite_id = 1;
|
|
}
|
|
|
|
message RejectRoomInviteRequest {
|
|
string invite_id = 1;
|
|
}
|
|
|
|
message CancelRoomInviteRequest {
|
|
string invite_id = 1;
|
|
}
|
|
|
|
message ListRoomInvitesRequest {}
|
|
|
|
message ListRoomInvitesResponse {
|
|
repeated RoomInvite incoming = 1;
|
|
repeated RoomInvite outgoing = 2;
|
|
}
|
|
|
|
service MembershipService {
|
|
rpc Invite(InviteRequest) returns (RoomInvite) {
|
|
option (google.api.http) = {
|
|
post: "/v1/rooms/{room_id}/invites"
|
|
body: "*"
|
|
};
|
|
}
|
|
rpc AcceptRoomInvite(AcceptRoomInviteRequest) returns (concord.common.v1.Member) {
|
|
option (google.api.http) = {
|
|
post: "/v1/invites/{invite_id}/accept"
|
|
};
|
|
}
|
|
rpc RejectRoomInvite(RejectRoomInviteRequest) returns (EmptyResponse) {
|
|
option (google.api.http) = {
|
|
post: "/v1/invites/{invite_id}/reject"
|
|
};
|
|
}
|
|
rpc CancelRoomInvite(CancelRoomInviteRequest) returns (EmptyResponse) {
|
|
option (google.api.http) = {
|
|
delete: "/v1/invites/{invite_id}"
|
|
};
|
|
}
|
|
rpc ListRoomInvites(ListRoomInvitesRequest) returns (ListRoomInvitesResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v1/invites"
|
|
};
|
|
}
|
|
rpc Remove(RemoveRequest) returns (EmptyResponse) {
|
|
option (google.api.http) = {
|
|
delete: "/v1/rooms/{room_id}/members/{user_id}"
|
|
};
|
|
}
|
|
rpc SetRole(SetRoleRequest) returns (concord.common.v1.Member) {
|
|
option (google.api.http) = {
|
|
put: "/v1/rooms/{room_id}/members/{user_id}/role"
|
|
body: "*"
|
|
};
|
|
}
|
|
rpc SetNickname(SetNicknameRequest) returns (concord.common.v1.Member) {
|
|
option (google.api.http) = {
|
|
put: "/v1/rooms/{room_id}/nickname"
|
|
body: "*"
|
|
};
|
|
}
|
|
rpc ListMembers(ListMembersRequest) returns (ListMembersResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v1/rooms/{room_id}/members"
|
|
};
|
|
}
|
|
} |