mirror of
https://github.com/kevin-DL/services.git
synced 2026-01-22 15:25:19 +00:00
add the chat service (#381)
This commit is contained in:
163
chat/proto/chat.proto
Normal file
163
chat/proto/chat.proto
Normal file
@@ -0,0 +1,163 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package chat;
|
||||
option go_package = "./proto;chat";
|
||||
|
||||
service Chat {
|
||||
rpc New(NewRequest) returns (NewResponse);
|
||||
rpc History(HistoryRequest) returns (HistoryResponse);
|
||||
rpc Send(SendRequest) returns (SendResponse);
|
||||
rpc List(ListRequest) returns (ListResponse);
|
||||
rpc Delete(DeleteRequest) returns (DeleteResponse);
|
||||
rpc Join(JoinRequest) returns (stream Message);
|
||||
rpc Invite(InviteRequest) returns (InviteResponse);
|
||||
rpc Leave(LeaveRequest) returns (LeaveResponse);
|
||||
rpc Kick(KickRequest) returns (KickResponse);
|
||||
}
|
||||
|
||||
// Create a new chat room
|
||||
message NewRequest {
|
||||
// name of the room
|
||||
string name = 1;
|
||||
// chat description
|
||||
string description = 2;
|
||||
// optional list of user ids
|
||||
repeated string user_ids = 3;
|
||||
// whether its a private room
|
||||
bool private = 4;
|
||||
}
|
||||
|
||||
message NewResponse {
|
||||
// the unique chat room
|
||||
Room room = 1;
|
||||
}
|
||||
|
||||
// List the messages in a chat
|
||||
message HistoryRequest {
|
||||
// the chat room id to get
|
||||
string room_id = 1;
|
||||
}
|
||||
|
||||
// HistoryResponse contains the historical messages in a chat
|
||||
message HistoryResponse {
|
||||
// messages in the chat room
|
||||
repeated Message messages = 1;
|
||||
}
|
||||
|
||||
// List available chats
|
||||
message ListRequest {
|
||||
// optional user id to filter by
|
||||
string user_id = 1;
|
||||
}
|
||||
|
||||
message ListResponse {
|
||||
repeated Room rooms = 1;
|
||||
}
|
||||
|
||||
// Delete a chat room
|
||||
message DeleteRequest {
|
||||
// the chat room id to delete
|
||||
string room_id = 1;
|
||||
}
|
||||
|
||||
message DeleteResponse {
|
||||
Room room = 1;
|
||||
}
|
||||
|
||||
|
||||
// Connect to a chat to receive a stream of messages
|
||||
// Send a message to a chat
|
||||
message SendRequest {
|
||||
// a client side id, should be validated by the server to make the request retry safe
|
||||
string client = 1;
|
||||
// id of the chat room the message is being sent to / from
|
||||
string room_id = 2;
|
||||
// id of the user who sent the message
|
||||
string user_id = 3;
|
||||
// subject of the message
|
||||
string subject = 4;
|
||||
// text of the message
|
||||
string text = 5;
|
||||
}
|
||||
|
||||
message SendResponse {
|
||||
// the message which was created
|
||||
Message message = 1;
|
||||
}
|
||||
|
||||
// Join a chat room
|
||||
message JoinRequest {
|
||||
// chat room to join
|
||||
string room_id = 1;
|
||||
// user id joining
|
||||
string user_id = 2;
|
||||
}
|
||||
|
||||
message Room {
|
||||
// unique room id
|
||||
string id = 1;
|
||||
// name of the chat
|
||||
string name = 2;
|
||||
// description of the that
|
||||
string description = 3;
|
||||
// time of creation
|
||||
string created_at = 4;
|
||||
// list of users
|
||||
repeated string user_ids = 5;
|
||||
// whether its a private room
|
||||
bool private = 6;
|
||||
}
|
||||
|
||||
// Message sent to a chat
|
||||
message Message {
|
||||
// id of the message, allocated by the server
|
||||
string id = 1;
|
||||
// a client side id, should be validated by the server to make the request retry safe
|
||||
string client = 2;
|
||||
// id of the chat the message is being sent to / from
|
||||
string room_id = 3;
|
||||
// id of the user who sent the message
|
||||
string user_id = 4;
|
||||
// time the message was sent in RFC3339 format
|
||||
string sent_at = 5;
|
||||
// subject of the message
|
||||
string subject = 6;
|
||||
// text of the message
|
||||
string text = 7;
|
||||
}
|
||||
|
||||
// Leave a chat room
|
||||
message LeaveRequest {
|
||||
// the chat room id
|
||||
string room_id = 1;
|
||||
// the user id
|
||||
string user_id = 2;
|
||||
}
|
||||
|
||||
message LeaveResponse {
|
||||
Room room = 1;
|
||||
}
|
||||
|
||||
// Invite a user to a chat room
|
||||
message InviteRequest {
|
||||
// the room id
|
||||
string room_id = 1;
|
||||
// the user id
|
||||
string user_id = 2;
|
||||
}
|
||||
|
||||
message InviteResponse {
|
||||
Room room = 1;
|
||||
}
|
||||
|
||||
// Kick a user from a chat room
|
||||
message KickRequest {
|
||||
// the chat room id
|
||||
string room_id = 1;
|
||||
// the user id
|
||||
string user_id = 2;
|
||||
}
|
||||
|
||||
message KickResponse {
|
||||
Room room = 1;
|
||||
}
|
||||
Reference in New Issue
Block a user