1
0
Fork 0
mirror of https://github.com/anyproto/anytype-heart.git synced 2025-06-11 02:13:41 +09:00

Merge pull request #1582 from anyproto/go-4108-chats-dummy-protocol-impl-for-release-7

GO-4108 dummy chat api
This commit is contained in:
Roman Khafizianov 2024-09-16 14:38:27 +02:00 committed by GitHub
commit 4ed3e7c92b
Signed by: github
GPG key ID: B5690EEEBB952194
11 changed files with 15592 additions and 3084 deletions

File diff suppressed because it is too large Load diff

99
core/chats.go Normal file
View file

@ -0,0 +1,99 @@
package core
import (
"context"
"github.com/anyproto/anytype-heart/pb"
)
// TODO: chats are temporary done as dummy API for clients to merge the API
func (mw *Middleware) ObjectChatAdd(ctx context.Context, request *pb.RpcObjectChatAddRequest) *pb.RpcObjectChatAddResponse {
// TODO implement me
return &pb.RpcObjectChatAddResponse{
Error: &pb.RpcObjectChatAddResponseError{
Code: pb.RpcObjectChatAddResponseError_UNKNOWN_ERROR,
Description: "not implemented",
},
}
}
func (mw *Middleware) ChatAddMessage(ctx context.Context, request *pb.RpcChatAddMessageRequest) *pb.RpcChatAddMessageResponse {
// TODO implement me
return &pb.RpcChatAddMessageResponse{
Error: &pb.RpcChatAddMessageResponseError{
Code: pb.RpcChatAddMessageResponseError_UNKNOWN_ERROR,
Description: "not implemented",
},
}
}
func (mw *Middleware) ChatEditMessageContent(ctx context.Context, request *pb.RpcChatEditMessageContentRequest) *pb.RpcChatEditMessageContentResponse {
// TODO implement me
return &pb.RpcChatEditMessageContentResponse{
Error: &pb.RpcChatEditMessageContentResponseError{
Code: pb.RpcChatEditMessageContentResponseError_UNKNOWN_ERROR,
Description: "not implemented",
},
}
}
func (mw *Middleware) ChatToggleMessageReaction(ctx context.Context, request *pb.RpcChatToggleMessageReactionRequest) *pb.RpcChatToggleMessageReactionResponse {
// TODO implement me
return &pb.RpcChatToggleMessageReactionResponse{
Error: &pb.RpcChatToggleMessageReactionResponseError{
Code: pb.RpcChatToggleMessageReactionResponseError_UNKNOWN_ERROR,
Description: "not implemented",
},
}
}
func (mw *Middleware) ChatDeleteMessage(ctx context.Context, request *pb.RpcChatDeleteMessageRequest) *pb.RpcChatDeleteMessageResponse {
// TODO implement me
return &pb.RpcChatDeleteMessageResponse{
Error: &pb.RpcChatDeleteMessageResponseError{
Code: pb.RpcChatDeleteMessageResponseError_UNKNOWN_ERROR,
Description: "not implemented",
},
}
}
func (mw *Middleware) ChatGetMessages(ctx context.Context, request *pb.RpcChatGetMessagesRequest) *pb.RpcChatGetMessagesResponse {
// TODO implement me
return &pb.RpcChatGetMessagesResponse{
Error: &pb.RpcChatGetMessagesResponseError{
Code: pb.RpcChatGetMessagesResponseError_UNKNOWN_ERROR,
Description: "not implemented",
},
}
}
func (mw *Middleware) ChatGetMessagesByIds(ctx context.Context, request *pb.RpcChatGetMessagesByIdsRequest) *pb.RpcChatGetMessagesByIdsResponse {
// TODO implement me
return &pb.RpcChatGetMessagesByIdsResponse{
Error: &pb.RpcChatGetMessagesByIdsResponseError{
Code: pb.RpcChatGetMessagesByIdsResponseError_UNKNOWN_ERROR,
Description: "not implemented",
},
}
}
func (mw *Middleware) ChatSubscribeLastMessages(ctx context.Context, request *pb.RpcChatSubscribeLastMessagesRequest) *pb.RpcChatSubscribeLastMessagesResponse {
// TODO implement me
return &pb.RpcChatSubscribeLastMessagesResponse{
Error: &pb.RpcChatSubscribeLastMessagesResponseError{
Code: pb.RpcChatSubscribeLastMessagesResponseError_UNKNOWN_ERROR,
Description: "not implemented",
},
}
}
func (mw *Middleware) ChatUnsubscribe(ctx context.Context, request *pb.RpcChatUnsubscribeRequest) *pb.RpcChatUnsubscribeResponse {
// TODO implement me
return &pb.RpcChatUnsubscribeResponse{
Error: &pb.RpcChatUnsubscribeResponseError{
Code: pb.RpcChatUnsubscribeResponseError_UNKNOWN_ERROR,
Description: "not implemented",
},
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1592,6 +1592,28 @@ message Rpc {
}
}
message ChatAdd {
message Request {
string objectId = 1;
}
message Response {
Error error = 1;
string chatId = 2;
message Error {
Code code = 1;
string description = 2;
enum Code {
NULL = 0;
UNKNOWN_ERROR = 1;
BAD_INPUT = 2;
// ...
}
}
}
}
message BookmarkFetch {
message Request {
string contextId = 1;
@ -7233,6 +7255,198 @@ message Rpc {
}
}
}
message Chat {
message AddMessage {
message Request {
string chatObjectId = 1;
model.ChatMessage message = 2;
}
message Response {
Error error = 1;
string messageId = 2;
ResponseEvent event = 3;
message Error {
Code code = 1;
string description = 2;
enum Code {
NULL = 0;
UNKNOWN_ERROR = 1;
BAD_INPUT = 2;
// ...
}
}
}
}
message EditMessageContent {
message Request {
string chatObjectId = 1;
string messageId = 2;
model.ChatMessage editedMessage = 3;
}
message Response {
Error error = 1;
message Error {
Code code = 1;
string description = 2;
enum Code {
NULL = 0;
UNKNOWN_ERROR = 1;
BAD_INPUT = 2;
// ...
}
}
}
}
message ToggleMessageReaction {
message Request {
string chatObjectId = 1;
string messageId = 2;
string emoji = 3;
}
message Response {
Error error = 1;
message Error {
Code code = 1;
string description = 2;
enum Code {
NULL = 0;
UNKNOWN_ERROR = 1;
BAD_INPUT = 2;
// ...
}
}
}
}
message DeleteMessage {
message Request {
string chatObjectId = 1;
string messageId = 2;
}
message Response {
Error error = 1;
message Error {
Code code = 1;
string description = 2;
enum Code {
NULL = 0;
UNKNOWN_ERROR = 1;
BAD_INPUT = 2;
// ...
}
}
}
}
message GetMessages {
message Request {
string chatObjectId = 1;
string beforeOrderId = 2; // OrderId of the message before which to get messages
int32 limit = 3;
}
message Response {
Error error = 1;
repeated model.ChatMessage messages = 2;
message Error {
Code code = 1;
string description = 2;
enum Code {
NULL = 0;
UNKNOWN_ERROR = 1;
BAD_INPUT = 2;
// ...
}
}
}
}
message GetMessagesByIds {
message Request {
string chatObjectId = 1;
repeated string messageIds = 2;
}
message Response {
Error error = 1;
repeated model.ChatMessage messages = 2;
message Error {
Code code = 1;
string description = 2;
enum Code {
NULL = 0;
UNKNOWN_ERROR = 1;
BAD_INPUT = 2;
// ...
}
}
}
}
message SubscribeLastMessages {
message Request {
string chatObjectId = 1; // Identifier for the chat
int32 limit = 2; // Number of max last messages to return and subscribe
}
message Response {
Error error = 1;
repeated model.ChatMessage messages = 2; // List of messages
int32 numMessagesBefore = 3; // Number of messages before the returned messages
message Error {
Code code = 1;
string description = 2;
enum Code {
NULL = 0;
UNKNOWN_ERROR = 1;
BAD_INPUT = 2;
// ...
}
}
}
}
message Unsubscribe {
message Request {
string chatObjectId = 1; // Identifier for the chat
}
message Response {
Error error = 1;
message Error {
Code code = 1;
string description = 2;
enum Code {
NULL = 0;
UNKNOWN_ERROR = 1;
BAD_INPUT = 2;
// ...
}
}
}
}
}
}

View file

@ -110,6 +110,30 @@ message Event {
P2PStatus.Update p2pStatusUpdate = 120;
Import.Finish importFinish = 121;
Chat.Add chatAdd = 128;
Chat.Update chatUpdate = 129;
Chat.UpdateReactions chatUpdateReactions = 130;
Chat.Delete chatDelete = 131;
}
}
message Chat {
message Add {
string id = 1;
string orderId = 2;
model.ChatMessage message = 3;
}
message Delete {
string id = 1;
}
message Update {
string id = 1;
model.ChatMessage message = 2;
}
message UpdateReactions {
string id = 1;
model.ChatMessage.Reactions reactions = 2;
}
}

View file

@ -73,6 +73,7 @@ service ClientCommands {
rpc ObjectCreate (anytype.Rpc.Object.Create.Request) returns (anytype.Rpc.Object.Create.Response);
rpc ObjectCreateBookmark (anytype.Rpc.Object.CreateBookmark.Request) returns (anytype.Rpc.Object.CreateBookmark.Response);
rpc ObjectCreateFromUrl (anytype.Rpc.Object.CreateFromUrl.Request) returns (anytype.Rpc.Object.CreateFromUrl.Response);
rpc ObjectChatAdd (anytype.Rpc.Object.ChatAdd.Request) returns (anytype.Rpc.Object.ChatAdd.Response);
// ObjectCreateSet just creates the new set, without adding the link to it from some other page
rpc ObjectCreateSet (anytype.Rpc.Object.CreateSet.Request) returns (anytype.Rpc.Object.CreateSet.Response);
@ -357,4 +358,14 @@ service ClientCommands {
rpc DeviceSetName (anytype.Rpc.Device.SetName.Request) returns (anytype.Rpc.Device.SetName.Response);
rpc DeviceList (anytype.Rpc.Device.List.Request) returns (anytype.Rpc.Device.List.Response);
rpc DeviceNetworkStateSet (anytype.Rpc.Device.NetworkState.Set.Request) returns (anytype.Rpc.Device.NetworkState.Set.Response);
// Chats dummy impl
rpc ChatAddMessage (anytype.Rpc.Chat.AddMessage.Request) returns (anytype.Rpc.Chat.AddMessage.Response);
rpc ChatEditMessageContent (anytype.Rpc.Chat.EditMessageContent.Request) returns (anytype.Rpc.Chat.EditMessageContent.Response);
rpc ChatToggleMessageReaction (anytype.Rpc.Chat.ToggleMessageReaction.Request) returns (anytype.Rpc.Chat.ToggleMessageReaction.Response);
rpc ChatDeleteMessage (anytype.Rpc.Chat.DeleteMessage.Request) returns (anytype.Rpc.Chat.DeleteMessage.Response);
rpc ChatGetMessages (anytype.Rpc.Chat.GetMessages.Request) returns (anytype.Rpc.Chat.GetMessages.Response);
rpc ChatGetMessagesByIds (anytype.Rpc.Chat.GetMessagesByIds.Request) returns (anytype.Rpc.Chat.GetMessagesByIds.Response);
rpc ChatSubscribeLastMessages (anytype.Rpc.Chat.SubscribeLastMessages.Request) returns (anytype.Rpc.Chat.SubscribeLastMessages.Response);
rpc ChatUnsubscribe (anytype.Rpc.Chat.Unsubscribe.Request) returns (anytype.Rpc.Chat.Unsubscribe.Response);
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -51,6 +51,9 @@ enum SmartBlockType {
NotificationObject = 0x217;
DevicesObject = 0x218;
ChatObject = 0x219; // Container for any-store based chats
ChatDerivedObject = 0x220; // Any-store based object for chat
}
message Search {
@ -97,6 +100,7 @@ message Block {
Content.TableColumn tableColumn = 27;
Content.TableRow tableRow = 28;
Content.Widget widget = 29;
Content.Chat chat = 30;
}
message Restrictions {
@ -574,6 +578,9 @@ message Block {
View = 4;
}
}
message Chat {
}
}
}
@ -751,6 +758,8 @@ message ObjectType {
participant = 19;
pdf = 20;
chat = 21;
chatDerived = 22;
}
}
@ -1308,4 +1317,41 @@ message DeviceInfo {
int64 addDate = 3;
bool archived = 4;
bool isConnected = 5;
}
message ChatMessage {
string id = 1; // Unique message identifier
string orderId = 2; // Used for subscriptions
string creator = 3; // Identifier for the message creator
int64 createdAt = 4;
int64 modifiedAt = 9;
string replyToMessageId = 5; // Identifier for the message being replied to
MessageContent message = 6; // Message content
repeated Attachment attachments = 7; // Attachments slice
Reactions reactions = 8; // Reactions to the message
message MessageContent {
string text = 1; // The text content of the message part
Block.Content.Text.Style style = 2; // The style/type of the message part
repeated Block.Content.Text.Mark marks = 3; // List of marks applied to the text
}
message Attachment {
string target = 1; // Identifier for the attachment object
AttachmentType type = 2; // Type of attachment
enum AttachmentType {
FILE = 0; // File attachment
IMAGE = 1; // Image attachment
LINK = 2; // Link attachment
}
}
message Reactions {
map<string, IdentityList> reactions = 1; // Map of emoji to list of user IDs
message IdentityList {
repeated string ids = 1; // List of user IDs
}
}
}