diff --git a/docs/apidocs.swagger.yaml b/docs/apidocs.swagger.yaml index 7d62d84b..499c0dc6 100644 --- a/docs/apidocs.swagger.yaml +++ b/docs/apidocs.swagger.yaml @@ -19,28 +19,6 @@ consumes: produces: - application/json 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: post: summary: SignIn signs in the user with the given username and password. @@ -925,13 +903,13 @@ paths: - MemoService /api/v1/{name_1}: get: - summary: GetIdentityProvider gets an identity provider. - operationId: IdentityProviderService_GetIdentityProvider + summary: GetUser gets a user by name. + operationId: UserService_GetUser responses: "200": description: A successful response. schema: - $ref: '#/definitions/apiv1IdentityProvider' + $ref: '#/definitions/v1User' default: description: An unexpected error response. schema: @@ -939,14 +917,14 @@ paths: parameters: - name: name_1 description: |- - The name of the identityProvider to get. - Format: identityProviders/{id} + The name of the user. + Format: users/{id} in: path required: true type: string - pattern: identityProviders/[^/]+ + pattern: users/[^/]+ tags: - - IdentityProviderService + - UserService delete: summary: DeleteIdentityProvider deletes an identity provider. operationId: IdentityProviderService_DeleteIdentityProvider @@ -973,13 +951,13 @@ paths: - IdentityProviderService /api/v1/{name_2}: get: - summary: GetResource returns a resource by name. - operationId: ResourceService_GetResource + summary: GetIdentityProvider gets an identity provider. + operationId: IdentityProviderService_GetIdentityProvider responses: "200": description: A successful response. schema: - $ref: '#/definitions/v1Resource' + $ref: '#/definitions/apiv1IdentityProvider' default: description: An unexpected error response. schema: @@ -987,15 +965,14 @@ paths: parameters: - name: name_2 description: |- - The name of the resource. - Format: resources/{id} - id is the system generated unique identifier. + The name of the identityProvider to get. + Format: identityProviders/{id} in: path required: true type: string - pattern: resources/[^/]+ + pattern: identityProviders/[^/]+ tags: - - ResourceService + - IdentityProviderService delete: summary: DeleteInbox deletes an inbox. operationId: InboxService_DeleteInbox @@ -1022,13 +999,13 @@ paths: - InboxService /api/v1/{name_3}: get: - summary: GetMemo gets a memo. - operationId: MemoService_GetMemo + summary: GetResource returns a resource by name. + operationId: ResourceService_GetResource responses: "200": description: A successful response. schema: - $ref: '#/definitions/v1Memo' + $ref: '#/definitions/v1Resource' default: description: An unexpected error response. schema: @@ -1036,14 +1013,15 @@ paths: parameters: - name: name_3 description: |- - The name of the memo. - Format: memos/{id} + The name of the resource. + Format: resources/{id} + id is the system generated unique identifier. in: path required: true type: string - pattern: memos/[^/]+ + pattern: resources/[^/]+ tags: - - MemoService + - ResourceService delete: summary: DeleteResource deletes a resource by name. operationId: ResourceService_DeleteResource @@ -1070,6 +1048,29 @@ paths: tags: - ResourceService /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: summary: DeleteMemo deletes a memo. operationId: MemoService_DeleteMemo @@ -1096,13 +1097,13 @@ paths: - MemoService /api/v1/{name}: get: - summary: GetUser gets a user by name. - operationId: UserService_GetUser + summary: GetActivity returns the activity with the given id. + operationId: ActivityService_GetActivity responses: "200": description: A successful response. schema: - $ref: '#/definitions/v1User' + $ref: '#/definitions/v1Activity' default: description: An unexpected error response. schema: @@ -1110,14 +1111,14 @@ paths: parameters: - name: name description: |- - The name of the user. - Format: users/{id} + The name of the activity. + Format: activities/{id} in: path required: true type: string - pattern: users/[^/]+ + pattern: activities/[^/]+ tags: - - UserService + - ActivityService delete: summary: DeleteUser deletes a user. operationId: UserService_DeleteUser @@ -2277,14 +2278,15 @@ definitions: v1Activity: type: object properties: - id: - type: integer - format: int32 - description: The system-generated unique identifier for the activity. + name: + type: string + title: |- + The name of the activity. + Format: activities/{id} creatorId: type: integer 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: string description: The type of the activity. diff --git a/proto/api/v1/activity_service.proto b/proto/api/v1/activity_service.proto index 10bcf7e5..639224ff 100644 --- a/proto/api/v1/activity_service.proto +++ b/proto/api/v1/activity_service.proto @@ -12,15 +12,16 @@ option go_package = "gen/api/v1"; service ActivityService { // GetActivity returns the activity with the given id. rpc GetActivity(GetActivityRequest) returns (Activity) { - option (google.api.http) = {get: "/api/v1/activities/{id}"}; - option (google.api.method_signature) = "id"; + option (google.api.http) = {get: "/api/v1/{name=activities/*}"}; + option (google.api.method_signature) = "name"; } } message Activity { - // The system-generated unique identifier for the activity. - int32 id = 1; - // The system-generated unique identifier for the user who created the activity. + // The name of the activity. + // Format: activities/{id} + string name = 1; + // The uid of the user who created the activity. int32 creator_id = 2; // The type of the activity. string type = 3; @@ -32,6 +33,11 @@ message Activity { ActivityPayload payload = 6; } +message ActivityPayload { + ActivityMemoCommentPayload memo_comment = 1; + ActivityVersionUpdatePayload version_update = 2; +} + // ActivityMemoCommentPayload represents the payload of a memo comment activity. message ActivityMemoCommentPayload { // The memo id of comment. @@ -45,12 +51,8 @@ message ActivityVersionUpdatePayload { string version = 1; } -message ActivityPayload { - ActivityMemoCommentPayload memo_comment = 1; - ActivityVersionUpdatePayload version_update = 2; -} - message GetActivityRequest { - // The system-generated unique identifier for the activity. - int32 id = 1; + // The name of the activity. + // Format: activities/{id} + string name = 1; } diff --git a/proto/gen/api/v1/activity_service.pb.go b/proto/gen/api/v1/activity_service.pb.go index 1d9faf2d..46e3a9d6 100644 --- a/proto/gen/api/v1/activity_service.pb.go +++ b/proto/gen/api/v1/activity_service.pb.go @@ -27,9 +27,10 @@ type Activity struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The system-generated unique identifier for the activity. - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - // The system-generated unique identifier for the user who created the activity. + // The name of the activity. + // Format: activities/{id} + 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"` // The type of the activity. 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} } -func (x *Activity) GetId() int32 { +func (x *Activity) GetName() string { if x != nil { - return x.Id + return x.Name } - return 0 + return "" } func (x *Activity) GetCreatorId() int32 { @@ -115,20 +116,17 @@ func (x *Activity) GetPayload() *ActivityPayload { return nil } -// ActivityMemoCommentPayload represents the payload of a memo comment activity. -type ActivityMemoCommentPayload struct { +type ActivityPayload struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The memo id of comment. - 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"` + MemoComment *ActivityMemoCommentPayload `protobuf:"bytes,1,opt,name=memo_comment,json=memoComment,proto3" json:"memo_comment,omitempty"` + VersionUpdate *ActivityVersionUpdatePayload `protobuf:"bytes,2,opt,name=version_update,json=versionUpdate,proto3" json:"version_update,omitempty"` } -func (x *ActivityMemoCommentPayload) Reset() { - *x = ActivityMemoCommentPayload{} +func (x *ActivityPayload) Reset() { + *x = ActivityPayload{} if protoimpl.UnsafeEnabled { mi := &file_api_v1_activity_service_proto_msgTypes[1] 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) } -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] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -154,36 +152,39 @@ func (x *ActivityMemoCommentPayload) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActivityMemoCommentPayload.ProtoReflect.Descriptor instead. -func (*ActivityMemoCommentPayload) Descriptor() ([]byte, []int) { +// Deprecated: Use ActivityPayload.ProtoReflect.Descriptor instead. +func (*ActivityPayload) Descriptor() ([]byte, []int) { return file_api_v1_activity_service_proto_rawDescGZIP(), []int{1} } -func (x *ActivityMemoCommentPayload) GetMemoId() int32 { +func (x *ActivityPayload) GetMemoComment() *ActivityMemoCommentPayload { 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 { - 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 sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The updated version of memos. - Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + // The memo id of comment. + 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() { - *x = ActivityVersionUpdatePayload{} +func (x *ActivityMemoCommentPayload) Reset() { + *x = ActivityMemoCommentPayload{} if protoimpl.UnsafeEnabled { mi := &file_api_v1_activity_service_proto_msgTypes[2] 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) } -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] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -209,29 +210,36 @@ func (x *ActivityVersionUpdatePayload) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActivityVersionUpdatePayload.ProtoReflect.Descriptor instead. -func (*ActivityVersionUpdatePayload) Descriptor() ([]byte, []int) { +// Deprecated: Use ActivityMemoCommentPayload.ProtoReflect.Descriptor instead. +func (*ActivityMemoCommentPayload) Descriptor() ([]byte, []int) { return file_api_v1_activity_service_proto_rawDescGZIP(), []int{2} } -func (x *ActivityVersionUpdatePayload) GetVersion() string { +func (x *ActivityMemoCommentPayload) GetMemoId() int32 { 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 sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MemoComment *ActivityMemoCommentPayload `protobuf:"bytes,1,opt,name=memo_comment,json=memoComment,proto3" json:"memo_comment,omitempty"` - VersionUpdate *ActivityVersionUpdatePayload `protobuf:"bytes,2,opt,name=version_update,json=versionUpdate,proto3" json:"version_update,omitempty"` + // The updated version of memos. + Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` } -func (x *ActivityPayload) Reset() { - *x = ActivityPayload{} +func (x *ActivityVersionUpdatePayload) Reset() { + *x = ActivityVersionUpdatePayload{} if protoimpl.UnsafeEnabled { mi := &file_api_v1_activity_service_proto_msgTypes[3] 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) } -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] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -257,23 +265,16 @@ func (x *ActivityPayload) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActivityPayload.ProtoReflect.Descriptor instead. -func (*ActivityPayload) Descriptor() ([]byte, []int) { +// Deprecated: Use ActivityVersionUpdatePayload.ProtoReflect.Descriptor instead. +func (*ActivityVersionUpdatePayload) Descriptor() ([]byte, []int) { return file_api_v1_activity_service_proto_rawDescGZIP(), []int{3} } -func (x *ActivityPayload) GetMemoComment() *ActivityMemoCommentPayload { - if x != nil { - return x.MemoComment - } - return nil -} - -func (x *ActivityPayload) GetVersionUpdate() *ActivityVersionUpdatePayload { +func (x *ActivityVersionUpdatePayload) GetVersion() string { if x != nil { - return x.VersionUpdate + return x.Version } - return nil + return "" } type GetActivityRequest struct { @@ -281,8 +282,9 @@ type GetActivityRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The system-generated unique identifier for the activity. - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // The name of the activity. + // Format: activities/{id} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } func (x *GetActivityRequest) Reset() { @@ -317,11 +319,11 @@ func (*GetActivityRequest) Descriptor() ([]byte, []int) { return file_api_v1_activity_service_proto_rawDescGZIP(), []int{4} } -func (x *GetActivityRequest) GetId() int32 { +func (x *GetActivityRequest) GetName() string { if x != nil { - return x.Id + return x.Name } - return 0 + return "" } 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, 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, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xdf, 0x01, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x69, 0x74, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, - 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x41, 0x0a, 0x0b, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x04, 0xe2, - 0x41, 0x01, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x37, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, - 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x5d, 0x0a, 0x1a, 0x41, 0x63, 0x74, 0x69, - 0x76, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x49, 0x64, 0x12, - 0x26, 0x0a, 0x0f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, - 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x49, 0x64, 0x22, 0x38, 0x0a, 0x1c, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x69, 0x74, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0xb1, 0x01, 0x0a, 0x0f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x50, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x4b, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x65, - 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x69, 0x74, 0x79, 0x4d, 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x65, 0x6d, - 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, - 0x74, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x24, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, - 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x32, 0x80, 0x01, 0x0a, 0x0f, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x6d, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x20, - 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x24, 0xda, 0x41, 0x02, 0x69, 0x64, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x42, 0xac, - 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x42, 0x14, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x75, 0x73, 0x65, 0x6d, 0x65, 0x6d, 0x6f, 0x73, - 0x2f, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x6e, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x70, 0x69, 0x76, 0x31, 0xa2, 0x02, 0x03, - 0x4d, 0x41, 0x58, 0xaa, 0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x70, 0x69, 0x2e, - 0x56, 0x31, 0xca, 0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x56, - 0x31, 0xe2, 0x02, 0x18, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31, - 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x4d, - 0x65, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x41, 0x70, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe3, 0x01, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x41, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x42, 0x04, 0xe2, 0x41, 0x01, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xb1, 0x01, 0x0a, + 0x0f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x12, 0x4b, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4d, 0x65, + 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a, + 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x52, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x22, 0x5d, 0x0a, 0x1a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x6d, 0x6f, + 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x17, + 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x72, 0x65, 0x6c, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x49, 0x64, 0x22, + 0x38, 0x0a, 0x1c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x28, 0x0a, 0x12, 0x47, 0x65, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x32, 0x86, 0x01, 0x0a, 0x0f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x73, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x20, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x22, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, + 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x42, 0xac, 0x01, 0x0a, + 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x42, 0x14, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x75, 0x73, 0x65, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, + 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x70, 0x69, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x4d, 0x41, + 0x58, 0xaa, 0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x70, 0x69, 0x2e, 0x56, 0x31, + 0xca, 0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31, 0xe2, + 0x02, 0x18, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31, 0x5c, 0x47, + 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x4d, 0x65, 0x6d, + 0x6f, 0x73, 0x3a, 0x3a, 0x41, 0x70, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } 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_goTypes = []any{ (*Activity)(nil), // 0: memos.api.v1.Activity - (*ActivityMemoCommentPayload)(nil), // 1: memos.api.v1.ActivityMemoCommentPayload - (*ActivityVersionUpdatePayload)(nil), // 2: memos.api.v1.ActivityVersionUpdatePayload - (*ActivityPayload)(nil), // 3: memos.api.v1.ActivityPayload + (*ActivityPayload)(nil), // 1: memos.api.v1.ActivityPayload + (*ActivityMemoCommentPayload)(nil), // 2: memos.api.v1.ActivityMemoCommentPayload + (*ActivityVersionUpdatePayload)(nil), // 3: memos.api.v1.ActivityVersionUpdatePayload (*GetActivityRequest)(nil), // 4: memos.api.v1.GetActivityRequest (*timestamppb.Timestamp)(nil), // 5: google.protobuf.Timestamp } var file_api_v1_activity_service_proto_depIdxs = []int32{ 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, // 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 + 1, // 1: memos.api.v1.Activity.payload:type_name -> memos.api.v1.ActivityPayload + 2, // 2: memos.api.v1.ActivityPayload.memo_comment:type_name -> memos.api.v1.ActivityMemoCommentPayload + 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 0, // 5: memos.api.v1.ActivityService.GetActivity:output_type -> memos.api.v1.Activity 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 { - switch v := v.(*ActivityMemoCommentPayload); i { + switch v := v.(*ActivityPayload); i { case 0: return &v.state 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 { - switch v := v.(*ActivityVersionUpdatePayload); i { + switch v := v.(*ActivityMemoCommentPayload); i { case 0: return &v.state 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 { - switch v := v.(*ActivityPayload); i { + switch v := v.(*ActivityVersionUpdatePayload); i { case 0: return &v.state case 1: diff --git a/proto/gen/api/v1/activity_service.pb.gw.go b/proto/gen/api/v1/activity_service.pb.gw.go index 7f03e4e9..0f0cf571 100644 --- a/proto/gen/api/v1/activity_service.pb.gw.go +++ b/proto/gen/api/v1/activity_service.pb.gw.go @@ -42,14 +42,14 @@ func request_ActivityService_GetActivity_0(ctx context.Context, marshaler runtim _ = err ) - val, ok = pathParams["id"] + val, ok = pathParams["name"] 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 { - 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)) @@ -68,14 +68,14 @@ func local_request_ActivityService_GetActivity_0(ctx context.Context, marshaler _ = err ) - val, ok = pathParams["id"] + val, ok = pathParams["name"] 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 { - 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) @@ -98,7 +98,7 @@ func RegisterActivityServiceHandlerServer(ctx context.Context, mux *runtime.Serv inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error 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 { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -162,7 +162,7 @@ func RegisterActivityServiceHandlerClient(ctx context.Context, mux *runtime.Serv inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error 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 { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -182,7 +182,7 @@ func RegisterActivityServiceHandlerClient(ctx context.Context, mux *runtime.Serv } 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 ( diff --git a/server/router/api/v1/activity_service.go b/server/router/api/v1/activity_service.go index 760886e3..a3c0f5b7 100644 --- a/server/router/api/v1/activity_service.go +++ b/server/router/api/v1/activity_service.go @@ -2,6 +2,7 @@ package v1 import ( "context" + "fmt" "time" "google.golang.org/grpc/codes" @@ -14,8 +15,12 @@ import ( ) 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{ - ID: &request.Id, + ID: &activityID, }) if err != nil { 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) { return &v1pb.Activity{ - Id: activity.ID, + Name: fmt.Sprintf("%s%d", ActivityNamePrefix, activity.ID), CreatorId: activity.CreatorID, Type: activity.Type.String(), Level: activity.Level.String(), diff --git a/server/router/api/v1/resource_name.go b/server/router/api/v1/resource_name.go index cb8fca34..94b41836 100644 --- a/server/router/api/v1/resource_name.go +++ b/server/router/api/v1/resource_name.go @@ -17,6 +17,7 @@ const ( InboxNamePrefix = "inboxes/" StorageNamePrefix = "storages/" IdentityProviderNamePrefix = "identityProviders/" + ActivityNamePrefix = "activities/" ) // GetNameParentTokens returns the tokens from a resource name. @@ -123,3 +124,15 @@ func ExtractIdentityProviderIDFromName(name string) (int32, error) { } 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 +} diff --git a/web/src/components/Inbox/MemoCommentMessage.tsx b/web/src/components/Inbox/MemoCommentMessage.tsx index f5d58574..f2946e35 100644 --- a/web/src/components/Inbox/MemoCommentMessage.tsx +++ b/web/src/components/Inbox/MemoCommentMessage.tsx @@ -4,7 +4,7 @@ import { useEffect, useState } from "react"; import toast from "react-hot-toast"; import { activityServiceClient } from "@/grpcweb"; 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 { Memo } from "@/types/proto/api/v1/memo_service"; import { User } from "@/types/proto/api/v1/user_service"; @@ -31,7 +31,7 @@ const MemoCommentMessage = ({ inbox }: Props) => { (async () => { const activity = await activityServiceClient.getActivity({ - id: inbox.activityId, + name: `${activityNamePrefix}${inbox.activityId}`, }); if (activity.payload?.memoComment) { const memoCommentPayload = activity.payload.memoComment; diff --git a/web/src/components/Inbox/VersionUpdateMessage.tsx b/web/src/components/Inbox/VersionUpdateMessage.tsx index 6a2e70f7..c3fcbbd2 100644 --- a/web/src/components/Inbox/VersionUpdateMessage.tsx +++ b/web/src/components/Inbox/VersionUpdateMessage.tsx @@ -3,7 +3,7 @@ import clsx from "clsx"; import { useEffect, useState } from "react"; import toast from "react-hot-toast"; 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 { Inbox, Inbox_Status } from "@/types/proto/api/v1/inbox_service"; import { useTranslate } from "@/utils/i18n"; @@ -25,7 +25,7 @@ const VersionUpdateMessage = ({ inbox }: Props) => { (async () => { const activity = await activityServiceClient.getActivity({ - id: inbox.activityId, + name: `${activityNamePrefix}${inbox.activityId}`, }); setActivity(activity); })(); diff --git a/web/src/components/Settings/MemoRelatedSettings.tsx b/web/src/components/Settings/MemoRelatedSettings.tsx index 0cc5735c..7f8ba3de 100644 --- a/web/src/components/Settings/MemoRelatedSettings.tsx +++ b/web/src/components/Settings/MemoRelatedSettings.tsx @@ -1,7 +1,7 @@ import { Button, Input, Switch } from "@mui/joy"; import { isEqual } from "lodash-es"; 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 { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting"; import { useTranslate } from "@/utils/i18n"; @@ -24,7 +24,7 @@ const MemoRelatedSettings = () => { const updateSetting = async () => { await workspaceSettingStore.setWorkspaceSetting({ - name: `${WorkspaceSettingPrefix}${WorkspaceSettingKey.MEMO_RELATED}`, + name: `${workspaceSettingNamePrefix}${WorkspaceSettingKey.MEMO_RELATED}`, memoRelatedSetting, }); }; diff --git a/web/src/components/Settings/StorageSection.tsx b/web/src/components/Settings/StorageSection.tsx index ed4bef8e..5b419693 100644 --- a/web/src/components/Settings/StorageSection.tsx +++ b/web/src/components/Settings/StorageSection.tsx @@ -3,7 +3,7 @@ import { isEqual } from "lodash-es"; import { useMemo, useState } from "react"; import { toast } from "react-hot-toast"; import { Link } from "react-router-dom"; -import { WorkspaceSettingPrefix, useWorkspaceSettingStore } from "@/store/v1"; +import { workspaceSettingNamePrefix, useWorkspaceSettingStore } from "@/store/v1"; import { WorkspaceStorageSetting, WorkspaceStorageSetting_S3Config, @@ -107,7 +107,7 @@ const StorageSection = () => { const saveWorkspaceStorageSetting = async () => { await workspaceSettingStore.setWorkspaceSetting({ - name: `${WorkspaceSettingPrefix}${WorkspaceSettingKey.STORAGE}`, + name: `${workspaceSettingNamePrefix}${WorkspaceSettingKey.STORAGE}`, storageSetting: workspaceStorageSetting, }); toast.success("Updated"); diff --git a/web/src/components/Settings/WorkspaceSection.tsx b/web/src/components/Settings/WorkspaceSection.tsx index ebba028b..2255f03d 100644 --- a/web/src/components/Settings/WorkspaceSection.tsx +++ b/web/src/components/Settings/WorkspaceSection.tsx @@ -3,7 +3,7 @@ import { useState } from "react"; import { toast } from "react-hot-toast"; import { Link } from "react-router-dom"; 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 { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting"; import { useTranslate } from "@/utils/i18n"; @@ -29,7 +29,7 @@ const WorkspaceSection = () => { try { await workspaceSettingServiceClient.setWorkspaceSetting({ setting: { - name: `${WorkspaceSettingPrefix}${WorkspaceSettingKey.GENERAL}`, + name: `${workspaceSettingNamePrefix}${WorkspaceSettingKey.GENERAL}`, generalSetting: workspaceGeneralSetting, }, }); @@ -49,7 +49,7 @@ const WorkspaceSection = () => { try { await workspaceSettingServiceClient.setWorkspaceSetting({ setting: { - name: `${WorkspaceSettingPrefix}${WorkspaceSettingKey.GENERAL}`, + name: `${workspaceSettingNamePrefix}${WorkspaceSettingKey.GENERAL}`, generalSetting: workspaceGeneralSetting, }, }); diff --git a/web/src/components/UpdateAccountDialog.tsx b/web/src/components/UpdateAccountDialog.tsx index d1447cb5..dcdaea6f 100644 --- a/web/src/components/UpdateAccountDialog.tsx +++ b/web/src/components/UpdateAccountDialog.tsx @@ -4,7 +4,7 @@ import { useState } from "react"; import { toast } from "react-hot-toast"; import { convertFileToBase64 } from "@/helpers/utils"; 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 { useTranslate } from "@/utils/i18n"; import { generateDialog } from "./Dialog"; @@ -104,7 +104,7 @@ const UpdateAccountDialog: React.FC = ({ destroy }: Props) => { try { const updateMask = []; - if (!isEqual(currentUser.name.replace(UserNamePrefix, ""), state.username)) { + if (!isEqual(currentUser.name.replace(userNamePrefix, ""), state.username)) { updateMask.push("username"); } if (!isEqual(currentUser.nickname, state.nickname)) { diff --git a/web/src/components/UpdateCustomizedProfileDialog.tsx b/web/src/components/UpdateCustomizedProfileDialog.tsx index 6e285439..e15967cf 100644 --- a/web/src/components/UpdateCustomizedProfileDialog.tsx +++ b/web/src/components/UpdateCustomizedProfileDialog.tsx @@ -2,7 +2,7 @@ import { Button, IconButton, Input } from "@mui/joy"; import Textarea from "@mui/joy/Textarea/Textarea"; import { useState } from "react"; 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 { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting"; import { useTranslate } from "@/utils/i18n"; @@ -84,7 +84,7 @@ const UpdateCustomizedProfileDialog: React.FC = ({ destroy }: Props) => { try { await workspaceSettingStore.setWorkspaceSetting({ - name: `${WorkspaceSettingPrefix}${WorkspaceSettingKey.GENERAL}`, + name: `${workspaceSettingNamePrefix}${WorkspaceSettingKey.GENERAL}`, generalSetting: { ...workspaceGeneralSetting, customProfile: customProfile, diff --git a/web/src/store/v1/resourceName.ts b/web/src/store/v1/resourceName.ts index 2f3bc267..67cdf73a 100644 --- a/web/src/store/v1/resourceName.ts +++ b/web/src/store/v1/resourceName.ts @@ -1,12 +1,13 @@ -export const WorkspaceSettingPrefix = "settings/"; -export const UserNamePrefix = "users/"; +export const workspaceSettingNamePrefix = "settings/"; +export const userNamePrefix = "users/"; export const MemoNamePrefix = "memos/"; -export const IdentityProviderNamePrefix = "identityProviders/"; +export const identityProviderNamePrefix = "identityProviders/"; +export const activityNamePrefix = "activities/"; export const extractMemoIdFromName = (name: string) => { return parseInt(name.split(MemoNamePrefix).pop() || "", 10); }; export const extractIdentityProviderIdFromName = (name: string) => { - return parseInt(name.split(IdentityProviderNamePrefix).pop() || "", 10); + return parseInt(name.split(identityProviderNamePrefix).pop() || "", 10); }; diff --git a/web/src/store/v1/workspaceSetting.ts b/web/src/store/v1/workspaceSetting.ts index 31975b1a..b970ead7 100644 --- a/web/src/store/v1/workspaceSetting.ts +++ b/web/src/store/v1/workspaceSetting.ts @@ -3,7 +3,7 @@ import { combine } from "zustand/middleware"; import { workspaceSettingServiceClient } from "@/grpcweb"; import { WorkspaceSetting } from "@/types/proto/api/v1/workspace_setting_service"; import { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting"; -import { WorkspaceSettingPrefix } from "./resourceName"; +import { workspaceSettingNamePrefix } from "./resourceName"; interface State { workspaceSettingByName: Record; @@ -19,11 +19,11 @@ export const useWorkspaceSettingStore = create( return get(); }, 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 } }); }, getWorkspaceSettingByKey: (key: WorkspaceSettingKey): WorkspaceSetting => { - return get().workspaceSettingByName[`${WorkspaceSettingPrefix}${key}`] || WorkspaceSetting.fromPartial({}); + return get().workspaceSettingByName[`${workspaceSettingNamePrefix}${key}`] || WorkspaceSetting.fromPartial({}); }, setWorkspaceSetting: async (setting: WorkspaceSetting) => { await workspaceSettingServiceClient.setWorkspaceSetting({ setting });