2023-08-05 09:32:52 +08:00
|
|
|
syntax = "proto3";
|
|
|
|
|
|
|
|
package memos.api.v2;
|
|
|
|
|
|
|
|
import "api/v2/common.proto";
|
2023-12-17 09:53:22 +08:00
|
|
|
import "api/v2/markdown_service.proto";
|
2023-08-05 09:32:52 +08:00
|
|
|
import "google/api/annotations.proto";
|
|
|
|
import "google/api/client.proto";
|
|
|
|
|
|
|
|
option go_package = "gen/api/v2";
|
|
|
|
|
|
|
|
service MemoService {
|
2023-10-01 14:44:10 +08:00
|
|
|
rpc CreateMemo(CreateMemoRequest) returns (CreateMemoResponse) {
|
|
|
|
option (google.api.http) = {post: "/api/v2/memos"};
|
|
|
|
}
|
|
|
|
|
2023-08-05 09:32:52 +08:00
|
|
|
rpc ListMemos(ListMemosRequest) returns (ListMemosResponse) {
|
|
|
|
option (google.api.http) = {get: "/api/v2/memos"};
|
|
|
|
}
|
|
|
|
|
|
|
|
rpc GetMemo(GetMemoRequest) returns (GetMemoResponse) {
|
|
|
|
option (google.api.http) = {get: "/api/v2/memos/{id}"};
|
|
|
|
option (google.api.method_signature) = "id";
|
|
|
|
}
|
2023-10-01 14:44:10 +08:00
|
|
|
|
|
|
|
rpc CreateMemoComment(CreateMemoCommentRequest) returns (CreateMemoCommentResponse) {
|
|
|
|
option (google.api.http) = {post: "/api/v2/memos/{id}/comments"};
|
|
|
|
option (google.api.method_signature) = "id";
|
|
|
|
}
|
|
|
|
|
|
|
|
rpc ListMemoComments(ListMemoCommentsRequest) returns (ListMemoCommentsResponse) {
|
|
|
|
option (google.api.http) = {get: "/api/v2/memos/{id}/comments"};
|
|
|
|
option (google.api.method_signature) = "id";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
enum Visibility {
|
|
|
|
VISIBILITY_UNSPECIFIED = 0;
|
|
|
|
|
|
|
|
PRIVATE = 1;
|
|
|
|
|
|
|
|
PROTECTED = 2;
|
|
|
|
|
|
|
|
PUBLIC = 3;
|
2023-08-05 09:32:52 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
message Memo {
|
|
|
|
int32 id = 1;
|
|
|
|
|
|
|
|
RowStatus row_status = 2;
|
|
|
|
|
|
|
|
int32 creator_id = 3;
|
|
|
|
|
|
|
|
int64 created_ts = 4;
|
|
|
|
|
|
|
|
int64 updated_ts = 5;
|
|
|
|
|
|
|
|
string content = 6;
|
|
|
|
|
2023-12-17 09:53:22 +08:00
|
|
|
repeated Node nodes = 7;
|
2023-08-05 09:32:52 +08:00
|
|
|
|
2023-12-17 09:53:22 +08:00
|
|
|
Visibility visibility = 8;
|
|
|
|
|
|
|
|
bool pinned = 9;
|
2023-08-05 09:32:52 +08:00
|
|
|
}
|
|
|
|
|
2023-10-01 14:44:10 +08:00
|
|
|
message CreateMemoRequest {
|
|
|
|
string content = 1;
|
|
|
|
|
|
|
|
Visibility visibility = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
message CreateMemoResponse {
|
|
|
|
Memo memo = 1;
|
|
|
|
}
|
|
|
|
|
2023-08-05 09:32:52 +08:00
|
|
|
message ListMemosRequest {
|
|
|
|
int32 page = 1;
|
|
|
|
|
|
|
|
int32 page_size = 2;
|
|
|
|
|
|
|
|
// Filter is used to filter memos returned in the list.
|
|
|
|
string filter = 3;
|
2023-10-23 21:32:58 +08:00
|
|
|
|
|
|
|
optional int32 creator_id = 4;
|
2023-08-05 09:32:52 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
message ListMemosResponse {
|
|
|
|
repeated Memo memos = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message GetMemoRequest {
|
|
|
|
int32 id = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message GetMemoResponse {
|
|
|
|
Memo memo = 1;
|
|
|
|
}
|
|
|
|
|
2023-10-01 14:44:10 +08:00
|
|
|
message CreateMemoCommentRequest {
|
|
|
|
// id is the memo id to create comment for.
|
|
|
|
int32 id = 1;
|
2023-08-05 09:32:52 +08:00
|
|
|
|
2023-10-01 14:44:10 +08:00
|
|
|
CreateMemoRequest create = 2;
|
|
|
|
}
|
2023-08-05 09:32:52 +08:00
|
|
|
|
2023-10-01 14:44:10 +08:00
|
|
|
message CreateMemoCommentResponse {
|
|
|
|
Memo memo = 1;
|
|
|
|
}
|
2023-08-05 09:32:52 +08:00
|
|
|
|
2023-10-01 14:44:10 +08:00
|
|
|
message ListMemoCommentsRequest {
|
|
|
|
int32 id = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message ListMemoCommentsResponse {
|
|
|
|
repeated Memo memos = 1;
|
2023-08-05 09:32:52 +08:00
|
|
|
}
|