chore: tweak activity service definition

pull/3769/head
Steven 11 months ago
parent cc91b1e512
commit 21f18f7c56

@ -19,28 +19,6 @@ consumes:
produces: produces:
- application/json - application/json
paths: paths:
/api/v1/activities/{id}:
get:
summary: GetActivity returns the activity with the given id.
operationId: ActivityService_GetActivity
responses:
"200":
description: A successful response.
schema:
$ref: '#/definitions/v1Activity'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: id
description: The system-generated unique identifier for the activity.
in: path
required: true
type: integer
format: int32
tags:
- ActivityService
/api/v1/auth/signin: /api/v1/auth/signin:
post: post:
summary: SignIn signs in the user with the given username and password. summary: SignIn signs in the user with the given username and password.
@ -925,13 +903,13 @@ paths:
- MemoService - MemoService
/api/v1/{name_1}: /api/v1/{name_1}:
get: get:
summary: GetIdentityProvider gets an identity provider. summary: GetUser gets a user by name.
operationId: IdentityProviderService_GetIdentityProvider operationId: UserService_GetUser
responses: responses:
"200": "200":
description: A successful response. description: A successful response.
schema: schema:
$ref: '#/definitions/apiv1IdentityProvider' $ref: '#/definitions/v1User'
default: default:
description: An unexpected error response. description: An unexpected error response.
schema: schema:
@ -939,14 +917,14 @@ paths:
parameters: parameters:
- name: name_1 - name: name_1
description: |- description: |-
The name of the identityProvider to get. The name of the user.
Format: identityProviders/{id} Format: users/{id}
in: path in: path
required: true required: true
type: string type: string
pattern: identityProviders/[^/]+ pattern: users/[^/]+
tags: tags:
- IdentityProviderService - UserService
delete: delete:
summary: DeleteIdentityProvider deletes an identity provider. summary: DeleteIdentityProvider deletes an identity provider.
operationId: IdentityProviderService_DeleteIdentityProvider operationId: IdentityProviderService_DeleteIdentityProvider
@ -973,13 +951,13 @@ paths:
- IdentityProviderService - IdentityProviderService
/api/v1/{name_2}: /api/v1/{name_2}:
get: get:
summary: GetResource returns a resource by name. summary: GetIdentityProvider gets an identity provider.
operationId: ResourceService_GetResource operationId: IdentityProviderService_GetIdentityProvider
responses: responses:
"200": "200":
description: A successful response. description: A successful response.
schema: schema:
$ref: '#/definitions/v1Resource' $ref: '#/definitions/apiv1IdentityProvider'
default: default:
description: An unexpected error response. description: An unexpected error response.
schema: schema:
@ -987,15 +965,14 @@ paths:
parameters: parameters:
- name: name_2 - name: name_2
description: |- description: |-
The name of the resource. The name of the identityProvider to get.
Format: resources/{id} Format: identityProviders/{id}
id is the system generated unique identifier.
in: path in: path
required: true required: true
type: string type: string
pattern: resources/[^/]+ pattern: identityProviders/[^/]+
tags: tags:
- ResourceService - IdentityProviderService
delete: delete:
summary: DeleteInbox deletes an inbox. summary: DeleteInbox deletes an inbox.
operationId: InboxService_DeleteInbox operationId: InboxService_DeleteInbox
@ -1022,13 +999,13 @@ paths:
- InboxService - InboxService
/api/v1/{name_3}: /api/v1/{name_3}:
get: get:
summary: GetMemo gets a memo. summary: GetResource returns a resource by name.
operationId: MemoService_GetMemo operationId: ResourceService_GetResource
responses: responses:
"200": "200":
description: A successful response. description: A successful response.
schema: schema:
$ref: '#/definitions/v1Memo' $ref: '#/definitions/v1Resource'
default: default:
description: An unexpected error response. description: An unexpected error response.
schema: schema:
@ -1036,14 +1013,15 @@ paths:
parameters: parameters:
- name: name_3 - name: name_3
description: |- description: |-
The name of the memo. The name of the resource.
Format: memos/{id} Format: resources/{id}
id is the system generated unique identifier.
in: path in: path
required: true required: true
type: string type: string
pattern: memos/[^/]+ pattern: resources/[^/]+
tags: tags:
- MemoService - ResourceService
delete: delete:
summary: DeleteResource deletes a resource by name. summary: DeleteResource deletes a resource by name.
operationId: ResourceService_DeleteResource operationId: ResourceService_DeleteResource
@ -1070,6 +1048,29 @@ paths:
tags: tags:
- ResourceService - ResourceService
/api/v1/{name_4}: /api/v1/{name_4}:
get:
summary: GetMemo gets a memo.
operationId: MemoService_GetMemo
responses:
"200":
description: A successful response.
schema:
$ref: '#/definitions/v1Memo'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name_4
description: |-
The name of the memo.
Format: memos/{id}
in: path
required: true
type: string
pattern: memos/[^/]+
tags:
- MemoService
delete: delete:
summary: DeleteMemo deletes a memo. summary: DeleteMemo deletes a memo.
operationId: MemoService_DeleteMemo operationId: MemoService_DeleteMemo
@ -1096,13 +1097,13 @@ paths:
- MemoService - MemoService
/api/v1/{name}: /api/v1/{name}:
get: get:
summary: GetUser gets a user by name. summary: GetActivity returns the activity with the given id.
operationId: UserService_GetUser operationId: ActivityService_GetActivity
responses: responses:
"200": "200":
description: A successful response. description: A successful response.
schema: schema:
$ref: '#/definitions/v1User' $ref: '#/definitions/v1Activity'
default: default:
description: An unexpected error response. description: An unexpected error response.
schema: schema:
@ -1110,14 +1111,14 @@ paths:
parameters: parameters:
- name: name - name: name
description: |- description: |-
The name of the user. The name of the activity.
Format: users/{id} Format: activities/{id}
in: path in: path
required: true required: true
type: string type: string
pattern: users/[^/]+ pattern: activities/[^/]+
tags: tags:
- UserService - ActivityService
delete: delete:
summary: DeleteUser deletes a user. summary: DeleteUser deletes a user.
operationId: UserService_DeleteUser operationId: UserService_DeleteUser
@ -2277,14 +2278,15 @@ definitions:
v1Activity: v1Activity:
type: object type: object
properties: properties:
id: name:
type: integer type: string
format: int32 title: |-
description: The system-generated unique identifier for the activity. The name of the activity.
Format: activities/{id}
creatorId: creatorId:
type: integer type: integer
format: int32 format: int32
description: The system-generated unique identifier for the user who created the activity. description: The uid of the user who created the activity.
type: type:
type: string type: string
description: The type of the activity. description: The type of the activity.

@ -12,15 +12,16 @@ option go_package = "gen/api/v1";
service ActivityService { service ActivityService {
// GetActivity returns the activity with the given id. // GetActivity returns the activity with the given id.
rpc GetActivity(GetActivityRequest) returns (Activity) { rpc GetActivity(GetActivityRequest) returns (Activity) {
option (google.api.http) = {get: "/api/v1/activities/{id}"}; option (google.api.http) = {get: "/api/v1/{name=activities/*}"};
option (google.api.method_signature) = "id"; option (google.api.method_signature) = "name";
} }
} }
message Activity { message Activity {
// The system-generated unique identifier for the activity. // The name of the activity.
int32 id = 1; // Format: activities/{id}
// The system-generated unique identifier for the user who created the activity. string name = 1;
// The uid of the user who created the activity.
int32 creator_id = 2; int32 creator_id = 2;
// The type of the activity. // The type of the activity.
string type = 3; string type = 3;
@ -32,6 +33,11 @@ message Activity {
ActivityPayload payload = 6; ActivityPayload payload = 6;
} }
message ActivityPayload {
ActivityMemoCommentPayload memo_comment = 1;
ActivityVersionUpdatePayload version_update = 2;
}
// ActivityMemoCommentPayload represents the payload of a memo comment activity. // ActivityMemoCommentPayload represents the payload of a memo comment activity.
message ActivityMemoCommentPayload { message ActivityMemoCommentPayload {
// The memo id of comment. // The memo id of comment.
@ -45,12 +51,8 @@ message ActivityVersionUpdatePayload {
string version = 1; string version = 1;
} }
message ActivityPayload {
ActivityMemoCommentPayload memo_comment = 1;
ActivityVersionUpdatePayload version_update = 2;
}
message GetActivityRequest { message GetActivityRequest {
// The system-generated unique identifier for the activity. // The name of the activity.
int32 id = 1; // Format: activities/{id}
string name = 1;
} }

@ -27,9 +27,10 @@ type Activity struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
// The system-generated unique identifier for the activity. // The name of the activity.
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // Format: activities/{id}
// The system-generated unique identifier for the user who created the activity. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// The uid of the user who created the activity.
CreatorId int32 `protobuf:"varint,2,opt,name=creator_id,json=creatorId,proto3" json:"creator_id,omitempty"` CreatorId int32 `protobuf:"varint,2,opt,name=creator_id,json=creatorId,proto3" json:"creator_id,omitempty"`
// The type of the activity. // The type of the activity.
Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
@ -73,11 +74,11 @@ func (*Activity) Descriptor() ([]byte, []int) {
return file_api_v1_activity_service_proto_rawDescGZIP(), []int{0} return file_api_v1_activity_service_proto_rawDescGZIP(), []int{0}
} }
func (x *Activity) GetId() int32 { func (x *Activity) GetName() string {
if x != nil { if x != nil {
return x.Id return x.Name
} }
return 0 return ""
} }
func (x *Activity) GetCreatorId() int32 { func (x *Activity) GetCreatorId() int32 {
@ -115,20 +116,17 @@ func (x *Activity) GetPayload() *ActivityPayload {
return nil return nil
} }
// ActivityMemoCommentPayload represents the payload of a memo comment activity. type ActivityPayload struct {
type ActivityMemoCommentPayload struct {
state protoimpl.MessageState state protoimpl.MessageState
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
// The memo id of comment. MemoComment *ActivityMemoCommentPayload `protobuf:"bytes,1,opt,name=memo_comment,json=memoComment,proto3" json:"memo_comment,omitempty"`
MemoId int32 `protobuf:"varint,1,opt,name=memo_id,json=memoId,proto3" json:"memo_id,omitempty"` VersionUpdate *ActivityVersionUpdatePayload `protobuf:"bytes,2,opt,name=version_update,json=versionUpdate,proto3" json:"version_update,omitempty"`
// The memo id of related memo.
RelatedMemoId int32 `protobuf:"varint,2,opt,name=related_memo_id,json=relatedMemoId,proto3" json:"related_memo_id,omitempty"`
} }
func (x *ActivityMemoCommentPayload) Reset() { func (x *ActivityPayload) Reset() {
*x = ActivityMemoCommentPayload{} *x = ActivityPayload{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_api_v1_activity_service_proto_msgTypes[1] mi := &file_api_v1_activity_service_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@ -136,13 +134,13 @@ func (x *ActivityMemoCommentPayload) Reset() {
} }
} }
func (x *ActivityMemoCommentPayload) String() string { func (x *ActivityPayload) String() string {
return protoimpl.X.MessageStringOf(x) return protoimpl.X.MessageStringOf(x)
} }
func (*ActivityMemoCommentPayload) ProtoMessage() {} func (*ActivityPayload) ProtoMessage() {}
func (x *ActivityMemoCommentPayload) ProtoReflect() protoreflect.Message { func (x *ActivityPayload) ProtoReflect() protoreflect.Message {
mi := &file_api_v1_activity_service_proto_msgTypes[1] mi := &file_api_v1_activity_service_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@ -154,36 +152,39 @@ func (x *ActivityMemoCommentPayload) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x) return mi.MessageOf(x)
} }
// Deprecated: Use ActivityMemoCommentPayload.ProtoReflect.Descriptor instead. // Deprecated: Use ActivityPayload.ProtoReflect.Descriptor instead.
func (*ActivityMemoCommentPayload) Descriptor() ([]byte, []int) { func (*ActivityPayload) Descriptor() ([]byte, []int) {
return file_api_v1_activity_service_proto_rawDescGZIP(), []int{1} return file_api_v1_activity_service_proto_rawDescGZIP(), []int{1}
} }
func (x *ActivityMemoCommentPayload) GetMemoId() int32 { func (x *ActivityPayload) GetMemoComment() *ActivityMemoCommentPayload {
if x != nil { if x != nil {
return x.MemoId return x.MemoComment
} }
return 0 return nil
} }
func (x *ActivityMemoCommentPayload) GetRelatedMemoId() int32 { func (x *ActivityPayload) GetVersionUpdate() *ActivityVersionUpdatePayload {
if x != nil { if x != nil {
return x.RelatedMemoId return x.VersionUpdate
} }
return 0 return nil
} }
type ActivityVersionUpdatePayload struct { // ActivityMemoCommentPayload represents the payload of a memo comment activity.
type ActivityMemoCommentPayload struct {
state protoimpl.MessageState state protoimpl.MessageState
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
// The updated version of memos. // The memo id of comment.
Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` MemoId int32 `protobuf:"varint,1,opt,name=memo_id,json=memoId,proto3" json:"memo_id,omitempty"`
// The memo id of related memo.
RelatedMemoId int32 `protobuf:"varint,2,opt,name=related_memo_id,json=relatedMemoId,proto3" json:"related_memo_id,omitempty"`
} }
func (x *ActivityVersionUpdatePayload) Reset() { func (x *ActivityMemoCommentPayload) Reset() {
*x = ActivityVersionUpdatePayload{} *x = ActivityMemoCommentPayload{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_api_v1_activity_service_proto_msgTypes[2] mi := &file_api_v1_activity_service_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@ -191,13 +192,13 @@ func (x *ActivityVersionUpdatePayload) Reset() {
} }
} }
func (x *ActivityVersionUpdatePayload) String() string { func (x *ActivityMemoCommentPayload) String() string {
return protoimpl.X.MessageStringOf(x) return protoimpl.X.MessageStringOf(x)
} }
func (*ActivityVersionUpdatePayload) ProtoMessage() {} func (*ActivityMemoCommentPayload) ProtoMessage() {}
func (x *ActivityVersionUpdatePayload) ProtoReflect() protoreflect.Message { func (x *ActivityMemoCommentPayload) ProtoReflect() protoreflect.Message {
mi := &file_api_v1_activity_service_proto_msgTypes[2] mi := &file_api_v1_activity_service_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@ -209,29 +210,36 @@ func (x *ActivityVersionUpdatePayload) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x) return mi.MessageOf(x)
} }
// Deprecated: Use ActivityVersionUpdatePayload.ProtoReflect.Descriptor instead. // Deprecated: Use ActivityMemoCommentPayload.ProtoReflect.Descriptor instead.
func (*ActivityVersionUpdatePayload) Descriptor() ([]byte, []int) { func (*ActivityMemoCommentPayload) Descriptor() ([]byte, []int) {
return file_api_v1_activity_service_proto_rawDescGZIP(), []int{2} return file_api_v1_activity_service_proto_rawDescGZIP(), []int{2}
} }
func (x *ActivityVersionUpdatePayload) GetVersion() string { func (x *ActivityMemoCommentPayload) GetMemoId() int32 {
if x != nil { if x != nil {
return x.Version return x.MemoId
} }
return "" return 0
} }
type ActivityPayload struct { func (x *ActivityMemoCommentPayload) GetRelatedMemoId() int32 {
if x != nil {
return x.RelatedMemoId
}
return 0
}
type ActivityVersionUpdatePayload struct {
state protoimpl.MessageState state protoimpl.MessageState
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
MemoComment *ActivityMemoCommentPayload `protobuf:"bytes,1,opt,name=memo_comment,json=memoComment,proto3" json:"memo_comment,omitempty"` // The updated version of memos.
VersionUpdate *ActivityVersionUpdatePayload `protobuf:"bytes,2,opt,name=version_update,json=versionUpdate,proto3" json:"version_update,omitempty"` Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
} }
func (x *ActivityPayload) Reset() { func (x *ActivityVersionUpdatePayload) Reset() {
*x = ActivityPayload{} *x = ActivityVersionUpdatePayload{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_api_v1_activity_service_proto_msgTypes[3] mi := &file_api_v1_activity_service_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@ -239,13 +247,13 @@ func (x *ActivityPayload) Reset() {
} }
} }
func (x *ActivityPayload) String() string { func (x *ActivityVersionUpdatePayload) String() string {
return protoimpl.X.MessageStringOf(x) return protoimpl.X.MessageStringOf(x)
} }
func (*ActivityPayload) ProtoMessage() {} func (*ActivityVersionUpdatePayload) ProtoMessage() {}
func (x *ActivityPayload) ProtoReflect() protoreflect.Message { func (x *ActivityVersionUpdatePayload) ProtoReflect() protoreflect.Message {
mi := &file_api_v1_activity_service_proto_msgTypes[3] mi := &file_api_v1_activity_service_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@ -257,23 +265,16 @@ func (x *ActivityPayload) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x) return mi.MessageOf(x)
} }
// Deprecated: Use ActivityPayload.ProtoReflect.Descriptor instead. // Deprecated: Use ActivityVersionUpdatePayload.ProtoReflect.Descriptor instead.
func (*ActivityPayload) Descriptor() ([]byte, []int) { func (*ActivityVersionUpdatePayload) Descriptor() ([]byte, []int) {
return file_api_v1_activity_service_proto_rawDescGZIP(), []int{3} return file_api_v1_activity_service_proto_rawDescGZIP(), []int{3}
} }
func (x *ActivityPayload) GetMemoComment() *ActivityMemoCommentPayload { func (x *ActivityVersionUpdatePayload) GetVersion() string {
if x != nil {
return x.MemoComment
}
return nil
}
func (x *ActivityPayload) GetVersionUpdate() *ActivityVersionUpdatePayload {
if x != nil { if x != nil {
return x.VersionUpdate return x.Version
} }
return nil return ""
} }
type GetActivityRequest struct { type GetActivityRequest struct {
@ -281,8 +282,9 @@ type GetActivityRequest struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
// The system-generated unique identifier for the activity. // The name of the activity.
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // Format: activities/{id}
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
} }
func (x *GetActivityRequest) Reset() { func (x *GetActivityRequest) Reset() {
@ -317,11 +319,11 @@ func (*GetActivityRequest) Descriptor() ([]byte, []int) {
return file_api_v1_activity_service_proto_rawDescGZIP(), []int{4} return file_api_v1_activity_service_proto_rawDescGZIP(), []int{4}
} }
func (x *GetActivityRequest) GetId() int32 { func (x *GetActivityRequest) GetName() string {
if x != nil { if x != nil {
return x.Id return x.Name
} }
return 0 return ""
} }
var File_api_v1_activity_service_proto protoreflect.FileDescriptor var File_api_v1_activity_service_proto protoreflect.FileDescriptor
@ -337,64 +339,65 @@ var file_api_v1_activity_service_proto_rawDesc = []byte{
0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xdf, 0x01, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x69, 0x76, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe3, 0x01, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x69, 0x76,
0x69, 0x74, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74,
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x72, 0x65,
0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03,
0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65,
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x41, 0x0a, 0x0b, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c,
0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x41, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x04, 0xe2, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
0x41, 0x01, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x70, 0x42, 0x04, 0xe2, 0x41, 0x01, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54,
0x37, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06,
0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69,
0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x50, 0x61, 0x79, 0x6c,
0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x5d, 0x0a, 0x1a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x61, 0x64, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xb1, 0x01, 0x0a,
0x76, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x0f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64,
0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x69, 0x12, 0x4b, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x49, 0x64, 0x12, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61,
0x26, 0x0a, 0x0f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4d, 0x65,
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64,
0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x49, 0x64, 0x22, 0x38, 0x0a, 0x1c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a,
0x69, 0x74, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18,
0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70,
0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x56, 0x65, 0x72,
0x6e, 0x22, 0xb1, 0x01, 0x0a, 0x0f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x50, 0x61, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61,
0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x4b, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x63, 0x6f, 0x64, 0x52, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x65, 0x22, 0x5d, 0x0a, 0x1a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x6d, 0x6f,
0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x17,
0x69, 0x74, 0x79, 0x4d, 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x72, 0x65, 0x6c, 0x61, 0x74,
0x6e, 0x74, 0x12, 0x51, 0x0a, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x70, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x65, 0x6d, 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x49, 0x64, 0x22,
0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x38, 0x0a, 0x1c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69,
0x74, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12,
0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x24, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x28, 0x0a, 0x12, 0x47, 0x65, 0x74,
0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x32, 0x80, 0x01, 0x0a, 0x0f, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x61, 0x6d, 0x65, 0x32, 0x86, 0x01, 0x0a, 0x0f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79,
0x6d, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x73, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x41, 0x63,
0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x20, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61,
0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74,
0x1a, 0x16, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73,
0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x24, 0xda, 0x41, 0x02, 0x69, 0x64, 0x82, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79,
0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x22, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12,
0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x42, 0xac, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x61,
0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x42, 0xac, 0x01, 0x0a,
0x2e, 0x76, 0x31, 0x42, 0x14, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,
0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x31, 0x42, 0x14, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69,
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x75, 0x73, 0x65, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75,
0x2f, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x75, 0x73, 0x65, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x6d,
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x70, 0x69, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61,
0x4d, 0x41, 0x58, 0xaa, 0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x70, 0x69, 0x2e, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x70, 0x69, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x4d, 0x41,
0x56, 0x31, 0xca, 0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x58, 0xaa, 0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x70, 0x69, 0x2e, 0x56, 0x31,
0x31, 0xe2, 0x02, 0x18, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31, 0xca, 0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31, 0xe2,
0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x4d, 0x02, 0x18, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31, 0x5c, 0x47,
0x65, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x41, 0x70, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x4d, 0x65, 0x6d,
0x72, 0x6f, 0x74, 0x6f, 0x33, 0x6f, 0x73, 0x3a, 0x3a, 0x41, 0x70, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
} }
var ( var (
@ -412,17 +415,17 @@ func file_api_v1_activity_service_proto_rawDescGZIP() []byte {
var file_api_v1_activity_service_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_api_v1_activity_service_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_api_v1_activity_service_proto_goTypes = []any{ var file_api_v1_activity_service_proto_goTypes = []any{
(*Activity)(nil), // 0: memos.api.v1.Activity (*Activity)(nil), // 0: memos.api.v1.Activity
(*ActivityMemoCommentPayload)(nil), // 1: memos.api.v1.ActivityMemoCommentPayload (*ActivityPayload)(nil), // 1: memos.api.v1.ActivityPayload
(*ActivityVersionUpdatePayload)(nil), // 2: memos.api.v1.ActivityVersionUpdatePayload (*ActivityMemoCommentPayload)(nil), // 2: memos.api.v1.ActivityMemoCommentPayload
(*ActivityPayload)(nil), // 3: memos.api.v1.ActivityPayload (*ActivityVersionUpdatePayload)(nil), // 3: memos.api.v1.ActivityVersionUpdatePayload
(*GetActivityRequest)(nil), // 4: memos.api.v1.GetActivityRequest (*GetActivityRequest)(nil), // 4: memos.api.v1.GetActivityRequest
(*timestamppb.Timestamp)(nil), // 5: google.protobuf.Timestamp (*timestamppb.Timestamp)(nil), // 5: google.protobuf.Timestamp
} }
var file_api_v1_activity_service_proto_depIdxs = []int32{ var file_api_v1_activity_service_proto_depIdxs = []int32{
5, // 0: memos.api.v1.Activity.create_time:type_name -> google.protobuf.Timestamp 5, // 0: memos.api.v1.Activity.create_time:type_name -> google.protobuf.Timestamp
3, // 1: memos.api.v1.Activity.payload:type_name -> memos.api.v1.ActivityPayload 1, // 1: memos.api.v1.Activity.payload:type_name -> memos.api.v1.ActivityPayload
1, // 2: memos.api.v1.ActivityPayload.memo_comment:type_name -> memos.api.v1.ActivityMemoCommentPayload 2, // 2: memos.api.v1.ActivityPayload.memo_comment:type_name -> memos.api.v1.ActivityMemoCommentPayload
2, // 3: memos.api.v1.ActivityPayload.version_update:type_name -> memos.api.v1.ActivityVersionUpdatePayload 3, // 3: memos.api.v1.ActivityPayload.version_update:type_name -> memos.api.v1.ActivityVersionUpdatePayload
4, // 4: memos.api.v1.ActivityService.GetActivity:input_type -> memos.api.v1.GetActivityRequest 4, // 4: memos.api.v1.ActivityService.GetActivity:input_type -> memos.api.v1.GetActivityRequest
0, // 5: memos.api.v1.ActivityService.GetActivity:output_type -> memos.api.v1.Activity 0, // 5: memos.api.v1.ActivityService.GetActivity:output_type -> memos.api.v1.Activity
5, // [5:6] is the sub-list for method output_type 5, // [5:6] is the sub-list for method output_type
@ -451,7 +454,7 @@ func file_api_v1_activity_service_proto_init() {
} }
} }
file_api_v1_activity_service_proto_msgTypes[1].Exporter = func(v any, i int) any { file_api_v1_activity_service_proto_msgTypes[1].Exporter = func(v any, i int) any {
switch v := v.(*ActivityMemoCommentPayload); i { switch v := v.(*ActivityPayload); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -463,7 +466,7 @@ func file_api_v1_activity_service_proto_init() {
} }
} }
file_api_v1_activity_service_proto_msgTypes[2].Exporter = func(v any, i int) any { file_api_v1_activity_service_proto_msgTypes[2].Exporter = func(v any, i int) any {
switch v := v.(*ActivityVersionUpdatePayload); i { switch v := v.(*ActivityMemoCommentPayload); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -475,7 +478,7 @@ func file_api_v1_activity_service_proto_init() {
} }
} }
file_api_v1_activity_service_proto_msgTypes[3].Exporter = func(v any, i int) any { file_api_v1_activity_service_proto_msgTypes[3].Exporter = func(v any, i int) any {
switch v := v.(*ActivityPayload); i { switch v := v.(*ActivityVersionUpdatePayload); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:

@ -42,14 +42,14 @@ func request_ActivityService_GetActivity_0(ctx context.Context, marshaler runtim
_ = err _ = err
) )
val, ok = pathParams["id"] val, ok = pathParams["name"]
if !ok { if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name")
} }
protoReq.Id, err = runtime.Int32(val) protoReq.Name, err = runtime.String(val)
if err != nil { if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err)
} }
msg, err := client.GetActivity(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) msg, err := client.GetActivity(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
@ -68,14 +68,14 @@ func local_request_ActivityService_GetActivity_0(ctx context.Context, marshaler
_ = err _ = err
) )
val, ok = pathParams["id"] val, ok = pathParams["name"]
if !ok { if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name")
} }
protoReq.Id, err = runtime.Int32(val) protoReq.Name, err = runtime.String(val)
if err != nil { if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err)
} }
msg, err := server.GetActivity(ctx, &protoReq) msg, err := server.GetActivity(ctx, &protoReq)
@ -98,7 +98,7 @@ func RegisterActivityServiceHandlerServer(ctx context.Context, mux *runtime.Serv
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
var err error var err error
var annotatedContext context.Context var annotatedContext context.Context
annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/memos.api.v1.ActivityService/GetActivity", runtime.WithHTTPPathPattern("/api/v1/activities/{id}")) annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/memos.api.v1.ActivityService/GetActivity", runtime.WithHTTPPathPattern("/api/v1/{name=activities/*}"))
if err != nil { if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return return
@ -162,7 +162,7 @@ func RegisterActivityServiceHandlerClient(ctx context.Context, mux *runtime.Serv
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
var err error var err error
var annotatedContext context.Context var annotatedContext context.Context
annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/memos.api.v1.ActivityService/GetActivity", runtime.WithHTTPPathPattern("/api/v1/activities/{id}")) annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/memos.api.v1.ActivityService/GetActivity", runtime.WithHTTPPathPattern("/api/v1/{name=activities/*}"))
if err != nil { if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return return
@ -182,7 +182,7 @@ func RegisterActivityServiceHandlerClient(ctx context.Context, mux *runtime.Serv
} }
var ( var (
pattern_ActivityService_GetActivity_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "activities", "id"}, "")) pattern_ActivityService_GetActivity_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 2, 5, 3}, []string{"api", "v1", "activities", "name"}, ""))
) )
var ( var (

@ -2,6 +2,7 @@ package v1
import ( import (
"context" "context"
"fmt"
"time" "time"
"google.golang.org/grpc/codes" "google.golang.org/grpc/codes"
@ -14,8 +15,12 @@ import (
) )
func (s *APIV1Service) GetActivity(ctx context.Context, request *v1pb.GetActivityRequest) (*v1pb.Activity, error) { func (s *APIV1Service) GetActivity(ctx context.Context, request *v1pb.GetActivityRequest) (*v1pb.Activity, error) {
activityID, err := ExtractActivityIDFromName(request.Name)
if err != nil {
return nil, status.Errorf(codes.InvalidArgument, "invalid activity name: %v", err)
}
activity, err := s.Store.GetActivity(ctx, &store.FindActivity{ activity, err := s.Store.GetActivity(ctx, &store.FindActivity{
ID: &request.Id, ID: &activityID,
}) })
if err != nil { if err != nil {
return nil, status.Errorf(codes.Internal, "failed to get activity: %v", err) return nil, status.Errorf(codes.Internal, "failed to get activity: %v", err)
@ -30,7 +35,7 @@ func (s *APIV1Service) GetActivity(ctx context.Context, request *v1pb.GetActivit
func (*APIV1Service) convertActivityFromStore(_ context.Context, activity *store.Activity) (*v1pb.Activity, error) { func (*APIV1Service) convertActivityFromStore(_ context.Context, activity *store.Activity) (*v1pb.Activity, error) {
return &v1pb.Activity{ return &v1pb.Activity{
Id: activity.ID, Name: fmt.Sprintf("%s%d", ActivityNamePrefix, activity.ID),
CreatorId: activity.CreatorID, CreatorId: activity.CreatorID,
Type: activity.Type.String(), Type: activity.Type.String(),
Level: activity.Level.String(), Level: activity.Level.String(),

@ -17,6 +17,7 @@ const (
InboxNamePrefix = "inboxes/" InboxNamePrefix = "inboxes/"
StorageNamePrefix = "storages/" StorageNamePrefix = "storages/"
IdentityProviderNamePrefix = "identityProviders/" IdentityProviderNamePrefix = "identityProviders/"
ActivityNamePrefix = "activities/"
) )
// GetNameParentTokens returns the tokens from a resource name. // GetNameParentTokens returns the tokens from a resource name.
@ -123,3 +124,15 @@ func ExtractIdentityProviderIDFromName(name string) (int32, error) {
} }
return id, nil return id, nil
} }
func ExtractActivityIDFromName(name string) (int32, error) {
tokens, err := GetNameParentTokens(name, ActivityNamePrefix)
if err != nil {
return 0, err
}
id, err := util.ConvertStringToInt32(tokens[0])
if err != nil {
return 0, errors.Errorf("invalid activity ID %q", tokens[0])
}
return id, nil
}

@ -4,7 +4,7 @@ import { useEffect, useState } from "react";
import toast from "react-hot-toast"; import toast from "react-hot-toast";
import { activityServiceClient } from "@/grpcweb"; import { activityServiceClient } from "@/grpcweb";
import useNavigateTo from "@/hooks/useNavigateTo"; import useNavigateTo from "@/hooks/useNavigateTo";
import { MemoNamePrefix, useInboxStore, useMemoStore, useUserStore } from "@/store/v1"; import { activityNamePrefix, MemoNamePrefix, useInboxStore, useMemoStore, useUserStore } from "@/store/v1";
import { Inbox, Inbox_Status } from "@/types/proto/api/v1/inbox_service"; import { Inbox, Inbox_Status } from "@/types/proto/api/v1/inbox_service";
import { Memo } from "@/types/proto/api/v1/memo_service"; import { Memo } from "@/types/proto/api/v1/memo_service";
import { User } from "@/types/proto/api/v1/user_service"; import { User } from "@/types/proto/api/v1/user_service";
@ -31,7 +31,7 @@ const MemoCommentMessage = ({ inbox }: Props) => {
(async () => { (async () => {
const activity = await activityServiceClient.getActivity({ const activity = await activityServiceClient.getActivity({
id: inbox.activityId, name: `${activityNamePrefix}${inbox.activityId}`,
}); });
if (activity.payload?.memoComment) { if (activity.payload?.memoComment) {
const memoCommentPayload = activity.payload.memoComment; const memoCommentPayload = activity.payload.memoComment;

@ -3,7 +3,7 @@ import clsx from "clsx";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import toast from "react-hot-toast"; import toast from "react-hot-toast";
import { activityServiceClient } from "@/grpcweb"; import { activityServiceClient } from "@/grpcweb";
import { useInboxStore } from "@/store/v1"; import { activityNamePrefix, useInboxStore } from "@/store/v1";
import { Activity } from "@/types/proto/api/v1/activity_service"; import { Activity } from "@/types/proto/api/v1/activity_service";
import { Inbox, Inbox_Status } from "@/types/proto/api/v1/inbox_service"; import { Inbox, Inbox_Status } from "@/types/proto/api/v1/inbox_service";
import { useTranslate } from "@/utils/i18n"; import { useTranslate } from "@/utils/i18n";
@ -25,7 +25,7 @@ const VersionUpdateMessage = ({ inbox }: Props) => {
(async () => { (async () => {
const activity = await activityServiceClient.getActivity({ const activity = await activityServiceClient.getActivity({
id: inbox.activityId, name: `${activityNamePrefix}${inbox.activityId}`,
}); });
setActivity(activity); setActivity(activity);
})(); })();

@ -1,7 +1,7 @@
import { Button, Input, Switch } from "@mui/joy"; import { Button, Input, Switch } from "@mui/joy";
import { isEqual } from "lodash-es"; import { isEqual } from "lodash-es";
import { useState } from "react"; import { useState } from "react";
import { WorkspaceSettingPrefix, useWorkspaceSettingStore } from "@/store/v1"; import { workspaceSettingNamePrefix, useWorkspaceSettingStore } from "@/store/v1";
import { WorkspaceMemoRelatedSetting } from "@/types/proto/api/v1/workspace_setting_service"; import { WorkspaceMemoRelatedSetting } from "@/types/proto/api/v1/workspace_setting_service";
import { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting"; import { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting";
import { useTranslate } from "@/utils/i18n"; import { useTranslate } from "@/utils/i18n";
@ -24,7 +24,7 @@ const MemoRelatedSettings = () => {
const updateSetting = async () => { const updateSetting = async () => {
await workspaceSettingStore.setWorkspaceSetting({ await workspaceSettingStore.setWorkspaceSetting({
name: `${WorkspaceSettingPrefix}${WorkspaceSettingKey.MEMO_RELATED}`, name: `${workspaceSettingNamePrefix}${WorkspaceSettingKey.MEMO_RELATED}`,
memoRelatedSetting, memoRelatedSetting,
}); });
}; };

@ -3,7 +3,7 @@ import { isEqual } from "lodash-es";
import { useMemo, useState } from "react"; import { useMemo, useState } from "react";
import { toast } from "react-hot-toast"; import { toast } from "react-hot-toast";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import { WorkspaceSettingPrefix, useWorkspaceSettingStore } from "@/store/v1"; import { workspaceSettingNamePrefix, useWorkspaceSettingStore } from "@/store/v1";
import { import {
WorkspaceStorageSetting, WorkspaceStorageSetting,
WorkspaceStorageSetting_S3Config, WorkspaceStorageSetting_S3Config,
@ -107,7 +107,7 @@ const StorageSection = () => {
const saveWorkspaceStorageSetting = async () => { const saveWorkspaceStorageSetting = async () => {
await workspaceSettingStore.setWorkspaceSetting({ await workspaceSettingStore.setWorkspaceSetting({
name: `${WorkspaceSettingPrefix}${WorkspaceSettingKey.STORAGE}`, name: `${workspaceSettingNamePrefix}${WorkspaceSettingKey.STORAGE}`,
storageSetting: workspaceStorageSetting, storageSetting: workspaceStorageSetting,
}); });
toast.success("Updated"); toast.success("Updated");

@ -3,7 +3,7 @@ import { useState } from "react";
import { toast } from "react-hot-toast"; import { toast } from "react-hot-toast";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import { workspaceSettingServiceClient } from "@/grpcweb"; import { workspaceSettingServiceClient } from "@/grpcweb";
import { WorkspaceSettingPrefix, useWorkspaceSettingStore } from "@/store/v1"; import { workspaceSettingNamePrefix, useWorkspaceSettingStore } from "@/store/v1";
import { WorkspaceGeneralSetting } from "@/types/proto/api/v1/workspace_setting_service"; import { WorkspaceGeneralSetting } from "@/types/proto/api/v1/workspace_setting_service";
import { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting"; import { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting";
import { useTranslate } from "@/utils/i18n"; import { useTranslate } from "@/utils/i18n";
@ -29,7 +29,7 @@ const WorkspaceSection = () => {
try { try {
await workspaceSettingServiceClient.setWorkspaceSetting({ await workspaceSettingServiceClient.setWorkspaceSetting({
setting: { setting: {
name: `${WorkspaceSettingPrefix}${WorkspaceSettingKey.GENERAL}`, name: `${workspaceSettingNamePrefix}${WorkspaceSettingKey.GENERAL}`,
generalSetting: workspaceGeneralSetting, generalSetting: workspaceGeneralSetting,
}, },
}); });
@ -49,7 +49,7 @@ const WorkspaceSection = () => {
try { try {
await workspaceSettingServiceClient.setWorkspaceSetting({ await workspaceSettingServiceClient.setWorkspaceSetting({
setting: { setting: {
name: `${WorkspaceSettingPrefix}${WorkspaceSettingKey.GENERAL}`, name: `${workspaceSettingNamePrefix}${WorkspaceSettingKey.GENERAL}`,
generalSetting: workspaceGeneralSetting, generalSetting: workspaceGeneralSetting,
}, },
}); });

@ -4,7 +4,7 @@ import { useState } from "react";
import { toast } from "react-hot-toast"; import { toast } from "react-hot-toast";
import { convertFileToBase64 } from "@/helpers/utils"; import { convertFileToBase64 } from "@/helpers/utils";
import useCurrentUser from "@/hooks/useCurrentUser"; import useCurrentUser from "@/hooks/useCurrentUser";
import { UserNamePrefix, useUserStore } from "@/store/v1"; import { userNamePrefix, useUserStore } from "@/store/v1";
import { User as UserPb } from "@/types/proto/api/v1/user_service"; import { User as UserPb } from "@/types/proto/api/v1/user_service";
import { useTranslate } from "@/utils/i18n"; import { useTranslate } from "@/utils/i18n";
import { generateDialog } from "./Dialog"; import { generateDialog } from "./Dialog";
@ -104,7 +104,7 @@ const UpdateAccountDialog: React.FC<Props> = ({ destroy }: Props) => {
try { try {
const updateMask = []; const updateMask = [];
if (!isEqual(currentUser.name.replace(UserNamePrefix, ""), state.username)) { if (!isEqual(currentUser.name.replace(userNamePrefix, ""), state.username)) {
updateMask.push("username"); updateMask.push("username");
} }
if (!isEqual(currentUser.nickname, state.nickname)) { if (!isEqual(currentUser.nickname, state.nickname)) {

@ -2,7 +2,7 @@ import { Button, IconButton, Input } from "@mui/joy";
import Textarea from "@mui/joy/Textarea/Textarea"; import Textarea from "@mui/joy/Textarea/Textarea";
import { useState } from "react"; import { useState } from "react";
import { toast } from "react-hot-toast"; import { toast } from "react-hot-toast";
import { WorkspaceSettingPrefix, useWorkspaceSettingStore } from "@/store/v1"; import { workspaceSettingNamePrefix, useWorkspaceSettingStore } from "@/store/v1";
import { WorkspaceCustomProfile, WorkspaceGeneralSetting } from "@/types/proto/api/v1/workspace_setting_service"; import { WorkspaceCustomProfile, WorkspaceGeneralSetting } from "@/types/proto/api/v1/workspace_setting_service";
import { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting"; import { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting";
import { useTranslate } from "@/utils/i18n"; import { useTranslate } from "@/utils/i18n";
@ -84,7 +84,7 @@ const UpdateCustomizedProfileDialog: React.FC<Props> = ({ destroy }: Props) => {
try { try {
await workspaceSettingStore.setWorkspaceSetting({ await workspaceSettingStore.setWorkspaceSetting({
name: `${WorkspaceSettingPrefix}${WorkspaceSettingKey.GENERAL}`, name: `${workspaceSettingNamePrefix}${WorkspaceSettingKey.GENERAL}`,
generalSetting: { generalSetting: {
...workspaceGeneralSetting, ...workspaceGeneralSetting,
customProfile: customProfile, customProfile: customProfile,

@ -1,12 +1,13 @@
export const WorkspaceSettingPrefix = "settings/"; export const workspaceSettingNamePrefix = "settings/";
export const UserNamePrefix = "users/"; export const userNamePrefix = "users/";
export const MemoNamePrefix = "memos/"; export const MemoNamePrefix = "memos/";
export const IdentityProviderNamePrefix = "identityProviders/"; export const identityProviderNamePrefix = "identityProviders/";
export const activityNamePrefix = "activities/";
export const extractMemoIdFromName = (name: string) => { export const extractMemoIdFromName = (name: string) => {
return parseInt(name.split(MemoNamePrefix).pop() || "", 10); return parseInt(name.split(MemoNamePrefix).pop() || "", 10);
}; };
export const extractIdentityProviderIdFromName = (name: string) => { export const extractIdentityProviderIdFromName = (name: string) => {
return parseInt(name.split(IdentityProviderNamePrefix).pop() || "", 10); return parseInt(name.split(identityProviderNamePrefix).pop() || "", 10);
}; };

@ -3,7 +3,7 @@ import { combine } from "zustand/middleware";
import { workspaceSettingServiceClient } from "@/grpcweb"; import { workspaceSettingServiceClient } from "@/grpcweb";
import { WorkspaceSetting } from "@/types/proto/api/v1/workspace_setting_service"; import { WorkspaceSetting } from "@/types/proto/api/v1/workspace_setting_service";
import { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting"; import { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting";
import { WorkspaceSettingPrefix } from "./resourceName"; import { workspaceSettingNamePrefix } from "./resourceName";
interface State { interface State {
workspaceSettingByName: Record<string, WorkspaceSetting>; workspaceSettingByName: Record<string, WorkspaceSetting>;
@ -19,11 +19,11 @@ export const useWorkspaceSettingStore = create(
return get(); return get();
}, },
fetchWorkspaceSetting: async (key: WorkspaceSettingKey) => { fetchWorkspaceSetting: async (key: WorkspaceSettingKey) => {
const setting = await workspaceSettingServiceClient.getWorkspaceSetting({ name: `${WorkspaceSettingPrefix}${key}` }); const setting = await workspaceSettingServiceClient.getWorkspaceSetting({ name: `${workspaceSettingNamePrefix}${key}` });
set({ workspaceSettingByName: { ...get().workspaceSettingByName, [setting.name]: setting } }); set({ workspaceSettingByName: { ...get().workspaceSettingByName, [setting.name]: setting } });
}, },
getWorkspaceSettingByKey: (key: WorkspaceSettingKey): WorkspaceSetting => { getWorkspaceSettingByKey: (key: WorkspaceSettingKey): WorkspaceSetting => {
return get().workspaceSettingByName[`${WorkspaceSettingPrefix}${key}`] || WorkspaceSetting.fromPartial({}); return get().workspaceSettingByName[`${workspaceSettingNamePrefix}${key}`] || WorkspaceSetting.fromPartial({});
}, },
setWorkspaceSetting: async (setting: WorkspaceSetting) => { setWorkspaceSetting: async (setting: WorkspaceSetting) => {
await workspaceSettingServiceClient.setWorkspaceSetting({ setting }); await workspaceSettingServiceClient.setWorkspaceSetting({ setting });

Loading…
Cancel
Save