From 843c50a1031ac3697d1b7db081c0fc5333839b47 Mon Sep 17 00:00:00 2001 From: ITQ Date: Tue, 16 Dec 2025 17:39:02 +0300 Subject: [PATCH] chore(api)!: added achievement service --- api/proto/achievements.proto | 48 +++++++++ api/proto/competition.proto | 6 +- api/proto/task.proto | 6 +- pkg/api/competition/competition.pb.go | 107 ++++++------------- pkg/api/competition/competition_grpc.pb.go | 11 +- pkg/api/task/task.pb.go | 113 +++++++-------------- pkg/api/task/task_grpc.pb.go | 11 +- 7 files changed, 129 insertions(+), 173 deletions(-) create mode 100644 api/proto/achievements.proto diff --git a/api/proto/achievements.proto b/api/proto/achievements.proto new file mode 100644 index 0000000..d801261 --- /dev/null +++ b/api/proto/achievements.proto @@ -0,0 +1,48 @@ +syntax = "proto3"; + +package achievements; + +import "google/protobuf/timestamp.proto"; +import "google/protobuf/empty.proto"; + +option go_package = "pkg/api/achievements"; + +service AchievementsService { + rpc CreateAchievement(Achievement) returns (Achievement); + rpc GetAchievement(GetAchievementRequest) returns (Achievement); + rpc EditAchievement(Achievement) returns (Achievement); + rpc DeleteAchievement(DeleteAchievementRequest) returns (google.protobuf.Empty); + rpc ListAchievements(google.protobuf.Empty) returns (ListAchievementsResponse); + rpc GetUserAchievements(GetUserAchievementsRequest) returns (GetUserAchievementsResponse); +} + +message Achievement { + string id = 1; + string name = 2; + string description = 3; + string icon_url = 4; +} + +message AchievementUser { + Achievement achievement = 1; + google.protobuf.Timestamp received_at = 2; +} + +message GetAchievementRequest { + string id = 1; +} + +message DeleteAchievementRequest { + string achievement_id = 1; +} + +message ListAchievementsResponse { + repeated Achievement achievements = 1; +} + +message GetUserAchievementsRequest { + string user_id = 1; +} +message GetUserAchievementsResponse { + repeated AchievementUser user_achievements = 1; +} diff --git a/api/proto/competition.proto b/api/proto/competition.proto index 9a9f72a..5761b4f 100644 --- a/api/proto/competition.proto +++ b/api/proto/competition.proto @@ -3,6 +3,7 @@ syntax = "proto3"; package competition; import "google/protobuf/timestamp.proto"; +import "google/protobuf/empty.proto"; option go_package = "pkg/api/competition"; @@ -10,7 +11,7 @@ service CompetitionService { rpc CreateCompetition(Competition) returns (Competition); rpc GetCompetition(GetCompetitionRequest) returns (Competition); rpc EditCompetition(Competition) returns (Competition); - rpc DeleteCompetition(DeleteCompetitionRequest) returns (DeleteCompetitionResponse); + rpc DeleteCompetition(DeleteCompetitionRequest) returns (google.protobuf.Empty); rpc ListCompetitions(ListCompetitionsRequest) returns (ListCompetitionsResponse); rpc ChangeCompetitionState(ChangeCompetitionStateRequest) returns (Competition); } @@ -57,9 +58,6 @@ message GetCompetitionRequest { message DeleteCompetitionRequest { string competition_id = 1; } -message DeleteCompetitionResponse { - bool success = 1; -} message ListCompetitionsRequest { int32 page_size = 1; diff --git a/api/proto/task.proto b/api/proto/task.proto index 7446e6f..73f4453 100644 --- a/api/proto/task.proto +++ b/api/proto/task.proto @@ -3,6 +3,7 @@ syntax = "proto3"; package task; import "google/protobuf/timestamp.proto"; +import "google/protobuf/empty.proto"; option go_package = "pkg/api/task"; @@ -10,7 +11,7 @@ service TaskService { rpc CreateTask(Task) returns (Task); rpc GetTask(GetTaskRequest) returns (Task); rpc EditTask(Task) returns (Task); - rpc DeleteTask(DeleteTaskRequest) returns (DeleteTaskResponse); + rpc DeleteTask(DeleteTaskRequest) returns (google.protobuf.Empty); rpc ListCompetitionTasks(ListCompetitionTasksRequest) returns (ListCompetitionTasksResponse); rpc GetTaskAttachments(GetTaskAttachmentsRequest) returns (GetTaskAttachmentsResponse); } @@ -48,9 +49,6 @@ message GetTaskRequest { message DeleteTaskRequest { string task_id = 1; } -message DeleteTaskResponse { - bool success = 1; -} message ListCompetitionTasksRequest { string competition_id = 1; diff --git a/pkg/api/competition/competition.pb.go b/pkg/api/competition/competition.pb.go index fddc813..767908e 100644 --- a/pkg/api/competition/competition.pb.go +++ b/pkg/api/competition/competition.pb.go @@ -9,6 +9,7 @@ package competition import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + emptypb "google.golang.org/protobuf/types/known/emptypb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" @@ -390,50 +391,6 @@ func (x *DeleteCompetitionRequest) GetCompetitionId() string { return "" } -type DeleteCompetitionResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *DeleteCompetitionResponse) Reset() { - *x = DeleteCompetitionResponse{} - mi := &file_api_proto_competition_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeleteCompetitionResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteCompetitionResponse) ProtoMessage() {} - -func (x *DeleteCompetitionResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_proto_competition_proto_msgTypes[3] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeleteCompetitionResponse.ProtoReflect.Descriptor instead. -func (*DeleteCompetitionResponse) Descriptor() ([]byte, []int) { - return file_api_proto_competition_proto_rawDescGZIP(), []int{3} -} - -func (x *DeleteCompetitionResponse) GetSuccess() bool { - if x != nil { - return x.Success - } - return false -} - type ListCompetitionsRequest struct { state protoimpl.MessageState `protogen:"open.v1"` PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` @@ -447,7 +404,7 @@ type ListCompetitionsRequest struct { func (x *ListCompetitionsRequest) Reset() { *x = ListCompetitionsRequest{} - mi := &file_api_proto_competition_proto_msgTypes[4] + mi := &file_api_proto_competition_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -459,7 +416,7 @@ func (x *ListCompetitionsRequest) String() string { func (*ListCompetitionsRequest) ProtoMessage() {} func (x *ListCompetitionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_proto_competition_proto_msgTypes[4] + mi := &file_api_proto_competition_proto_msgTypes[3] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -472,7 +429,7 @@ func (x *ListCompetitionsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListCompetitionsRequest.ProtoReflect.Descriptor instead. func (*ListCompetitionsRequest) Descriptor() ([]byte, []int) { - return file_api_proto_competition_proto_rawDescGZIP(), []int{4} + return file_api_proto_competition_proto_rawDescGZIP(), []int{3} } func (x *ListCompetitionsRequest) GetPageSize() int32 { @@ -521,7 +478,7 @@ type ListCompetitionsResponse struct { func (x *ListCompetitionsResponse) Reset() { *x = ListCompetitionsResponse{} - mi := &file_api_proto_competition_proto_msgTypes[5] + mi := &file_api_proto_competition_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -533,7 +490,7 @@ func (x *ListCompetitionsResponse) String() string { func (*ListCompetitionsResponse) ProtoMessage() {} func (x *ListCompetitionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_proto_competition_proto_msgTypes[5] + mi := &file_api_proto_competition_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -546,7 +503,7 @@ func (x *ListCompetitionsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListCompetitionsResponse.ProtoReflect.Descriptor instead. func (*ListCompetitionsResponse) Descriptor() ([]byte, []int) { - return file_api_proto_competition_proto_rawDescGZIP(), []int{5} + return file_api_proto_competition_proto_rawDescGZIP(), []int{4} } func (x *ListCompetitionsResponse) GetTotalCount() int32 { @@ -580,7 +537,7 @@ type ChangeCompetitionStateRequest struct { func (x *ChangeCompetitionStateRequest) Reset() { *x = ChangeCompetitionStateRequest{} - mi := &file_api_proto_competition_proto_msgTypes[6] + mi := &file_api_proto_competition_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -592,7 +549,7 @@ func (x *ChangeCompetitionStateRequest) String() string { func (*ChangeCompetitionStateRequest) ProtoMessage() {} func (x *ChangeCompetitionStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_proto_competition_proto_msgTypes[6] + mi := &file_api_proto_competition_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -605,7 +562,7 @@ func (x *ChangeCompetitionStateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeCompetitionStateRequest.ProtoReflect.Descriptor instead. func (*ChangeCompetitionStateRequest) Descriptor() ([]byte, []int) { - return file_api_proto_competition_proto_rawDescGZIP(), []int{6} + return file_api_proto_competition_proto_rawDescGZIP(), []int{5} } func (x *ChangeCompetitionStateRequest) GetCompetitionId() string { @@ -626,7 +583,7 @@ var File_api_proto_competition_proto protoreflect.FileDescriptor const file_api_proto_competition_proto_rawDesc = "" + "\n" + - "\x1bapi/proto/competition.proto\x12\vcompetition\x1a\x1fgoogle/protobuf/timestamp.proto\"\xa3\x04\n" + + "\x1bapi/proto/competition.proto\x12\vcompetition\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\"\xa3\x04\n" + "\vCompetition\x12\x0e\n" + "\x02id\x18\x01 \x01(\tR\x02id\x123\n" + "\x05state\x18\x02 \x01(\x0e2\x1d.competition.CompetitionStateR\x05state\x12\x14\n" + @@ -648,9 +605,7 @@ const file_api_proto_competition_proto_rawDesc = "" + "\x15GetCompetitionRequest\x12%\n" + "\x0ecompetition_id\x18\x01 \x01(\tR\rcompetitionId\"A\n" + "\x18DeleteCompetitionRequest\x12%\n" + - "\x0ecompetition_id\x18\x01 \x01(\tR\rcompetitionId\"5\n" + - "\x19DeleteCompetitionResponse\x12\x18\n" + - "\asuccess\x18\x01 \x01(\bR\asuccess\"\x97\x02\n" + + "\x0ecompetition_id\x18\x01 \x01(\tR\rcompetitionId\"\x97\x02\n" + "\x17ListCompetitionsRequest\x12\x1b\n" + "\tpage_size\x18\x01 \x01(\x05R\bpageSize\x12\x1d\n" + "\n" + @@ -683,12 +638,12 @@ const file_api_proto_competition_proto_rawDesc = "" + "\x0fCompetitionType\x12 \n" + "\x1cCOMPETITION_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n" + "\x1aCOMPETITION_TYPE_EDUCATIVE\x10\x01\x12 \n" + - "\x1cCOMPETITION_TYPE_COMPETETIVE\x10\x022\x99\x04\n" + + "\x1cCOMPETITION_TYPE_COMPETETIVE\x10\x022\x89\x04\n" + "\x12CompetitionService\x12G\n" + "\x11CreateCompetition\x12\x18.competition.Competition\x1a\x18.competition.Competition\x12N\n" + "\x0eGetCompetition\x12\".competition.GetCompetitionRequest\x1a\x18.competition.Competition\x12E\n" + - "\x0fEditCompetition\x12\x18.competition.Competition\x1a\x18.competition.Competition\x12b\n" + - "\x11DeleteCompetition\x12%.competition.DeleteCompetitionRequest\x1a&.competition.DeleteCompetitionResponse\x12_\n" + + "\x0fEditCompetition\x12\x18.competition.Competition\x1a\x18.competition.Competition\x12R\n" + + "\x11DeleteCompetition\x12%.competition.DeleteCompetitionRequest\x1a\x16.google.protobuf.Empty\x12_\n" + "\x10ListCompetitions\x12$.competition.ListCompetitionsRequest\x1a%.competition.ListCompetitionsResponse\x12^\n" + "\x16ChangeCompetitionState\x12*.competition.ChangeCompetitionStateRequest\x1a\x18.competition.CompetitionB\x15Z\x13pkg/api/competitionb\x06proto3" @@ -705,7 +660,7 @@ func file_api_proto_competition_proto_rawDescGZIP() []byte { } var file_api_proto_competition_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_api_proto_competition_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_api_proto_competition_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_api_proto_competition_proto_goTypes = []any{ (CompetitionState)(0), // 0: competition.CompetitionState (ParticipationType)(0), // 1: competition.ParticipationType @@ -713,20 +668,20 @@ var file_api_proto_competition_proto_goTypes = []any{ (*Competition)(nil), // 3: competition.Competition (*GetCompetitionRequest)(nil), // 4: competition.GetCompetitionRequest (*DeleteCompetitionRequest)(nil), // 5: competition.DeleteCompetitionRequest - (*DeleteCompetitionResponse)(nil), // 6: competition.DeleteCompetitionResponse - (*ListCompetitionsRequest)(nil), // 7: competition.ListCompetitionsRequest - (*ListCompetitionsResponse)(nil), // 8: competition.ListCompetitionsResponse - (*ChangeCompetitionStateRequest)(nil), // 9: competition.ChangeCompetitionStateRequest - (*timestamppb.Timestamp)(nil), // 10: google.protobuf.Timestamp + (*ListCompetitionsRequest)(nil), // 6: competition.ListCompetitionsRequest + (*ListCompetitionsResponse)(nil), // 7: competition.ListCompetitionsResponse + (*ChangeCompetitionStateRequest)(nil), // 8: competition.ChangeCompetitionStateRequest + (*timestamppb.Timestamp)(nil), // 9: google.protobuf.Timestamp + (*emptypb.Empty)(nil), // 10: google.protobuf.Empty } var file_api_proto_competition_proto_depIdxs = []int32{ 0, // 0: competition.Competition.state:type_name -> competition.CompetitionState - 10, // 1: competition.Competition.start_time:type_name -> google.protobuf.Timestamp - 10, // 2: competition.Competition.end_time:type_name -> google.protobuf.Timestamp + 9, // 1: competition.Competition.start_time:type_name -> google.protobuf.Timestamp + 9, // 2: competition.Competition.end_time:type_name -> google.protobuf.Timestamp 2, // 3: competition.Competition.type:type_name -> competition.CompetitionType 1, // 4: competition.Competition.participation_type:type_name -> competition.ParticipationType - 10, // 5: competition.Competition.created_at:type_name -> google.protobuf.Timestamp - 10, // 6: competition.Competition.updated_at:type_name -> google.protobuf.Timestamp + 9, // 5: competition.Competition.created_at:type_name -> google.protobuf.Timestamp + 9, // 6: competition.Competition.updated_at:type_name -> google.protobuf.Timestamp 0, // 7: competition.ListCompetitionsRequest.state:type_name -> competition.CompetitionState 3, // 8: competition.ListCompetitionsResponse.competitions:type_name -> competition.Competition 0, // 9: competition.ChangeCompetitionStateRequest.state:type_name -> competition.CompetitionState @@ -734,13 +689,13 @@ var file_api_proto_competition_proto_depIdxs = []int32{ 4, // 11: competition.CompetitionService.GetCompetition:input_type -> competition.GetCompetitionRequest 3, // 12: competition.CompetitionService.EditCompetition:input_type -> competition.Competition 5, // 13: competition.CompetitionService.DeleteCompetition:input_type -> competition.DeleteCompetitionRequest - 7, // 14: competition.CompetitionService.ListCompetitions:input_type -> competition.ListCompetitionsRequest - 9, // 15: competition.CompetitionService.ChangeCompetitionState:input_type -> competition.ChangeCompetitionStateRequest + 6, // 14: competition.CompetitionService.ListCompetitions:input_type -> competition.ListCompetitionsRequest + 8, // 15: competition.CompetitionService.ChangeCompetitionState:input_type -> competition.ChangeCompetitionStateRequest 3, // 16: competition.CompetitionService.CreateCompetition:output_type -> competition.Competition 3, // 17: competition.CompetitionService.GetCompetition:output_type -> competition.Competition 3, // 18: competition.CompetitionService.EditCompetition:output_type -> competition.Competition - 6, // 19: competition.CompetitionService.DeleteCompetition:output_type -> competition.DeleteCompetitionResponse - 8, // 20: competition.CompetitionService.ListCompetitions:output_type -> competition.ListCompetitionsResponse + 10, // 19: competition.CompetitionService.DeleteCompetition:output_type -> google.protobuf.Empty + 7, // 20: competition.CompetitionService.ListCompetitions:output_type -> competition.ListCompetitionsResponse 3, // 21: competition.CompetitionService.ChangeCompetitionState:output_type -> competition.Competition 16, // [16:22] is the sub-list for method output_type 10, // [10:16] is the sub-list for method input_type @@ -755,14 +710,14 @@ func file_api_proto_competition_proto_init() { return } file_api_proto_competition_proto_msgTypes[0].OneofWrappers = []any{} - file_api_proto_competition_proto_msgTypes[4].OneofWrappers = []any{} + file_api_proto_competition_proto_msgTypes[3].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_api_proto_competition_proto_rawDesc), len(file_api_proto_competition_proto_rawDesc)), NumEnums: 3, - NumMessages: 7, + NumMessages: 6, NumExtensions: 0, NumServices: 1, }, diff --git a/pkg/api/competition/competition_grpc.pb.go b/pkg/api/competition/competition_grpc.pb.go index 0909e92..5b9b248 100644 --- a/pkg/api/competition/competition_grpc.pb.go +++ b/pkg/api/competition/competition_grpc.pb.go @@ -11,6 +11,7 @@ import ( grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" + emptypb "google.golang.org/protobuf/types/known/emptypb" ) // This is a compile-time assertion to ensure that this generated file @@ -34,7 +35,7 @@ type CompetitionServiceClient interface { CreateCompetition(ctx context.Context, in *Competition, opts ...grpc.CallOption) (*Competition, error) GetCompetition(ctx context.Context, in *GetCompetitionRequest, opts ...grpc.CallOption) (*Competition, error) EditCompetition(ctx context.Context, in *Competition, opts ...grpc.CallOption) (*Competition, error) - DeleteCompetition(ctx context.Context, in *DeleteCompetitionRequest, opts ...grpc.CallOption) (*DeleteCompetitionResponse, error) + DeleteCompetition(ctx context.Context, in *DeleteCompetitionRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) ListCompetitions(ctx context.Context, in *ListCompetitionsRequest, opts ...grpc.CallOption) (*ListCompetitionsResponse, error) ChangeCompetitionState(ctx context.Context, in *ChangeCompetitionStateRequest, opts ...grpc.CallOption) (*Competition, error) } @@ -77,9 +78,9 @@ func (c *competitionServiceClient) EditCompetition(ctx context.Context, in *Comp return out, nil } -func (c *competitionServiceClient) DeleteCompetition(ctx context.Context, in *DeleteCompetitionRequest, opts ...grpc.CallOption) (*DeleteCompetitionResponse, error) { +func (c *competitionServiceClient) DeleteCompetition(ctx context.Context, in *DeleteCompetitionRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(DeleteCompetitionResponse) + out := new(emptypb.Empty) err := c.cc.Invoke(ctx, CompetitionService_DeleteCompetition_FullMethodName, in, out, cOpts...) if err != nil { return nil, err @@ -114,7 +115,7 @@ type CompetitionServiceServer interface { CreateCompetition(context.Context, *Competition) (*Competition, error) GetCompetition(context.Context, *GetCompetitionRequest) (*Competition, error) EditCompetition(context.Context, *Competition) (*Competition, error) - DeleteCompetition(context.Context, *DeleteCompetitionRequest) (*DeleteCompetitionResponse, error) + DeleteCompetition(context.Context, *DeleteCompetitionRequest) (*emptypb.Empty, error) ListCompetitions(context.Context, *ListCompetitionsRequest) (*ListCompetitionsResponse, error) ChangeCompetitionState(context.Context, *ChangeCompetitionStateRequest) (*Competition, error) mustEmbedUnimplementedCompetitionServiceServer() @@ -136,7 +137,7 @@ func (UnimplementedCompetitionServiceServer) GetCompetition(context.Context, *Ge func (UnimplementedCompetitionServiceServer) EditCompetition(context.Context, *Competition) (*Competition, error) { return nil, status.Error(codes.Unimplemented, "method EditCompetition not implemented") } -func (UnimplementedCompetitionServiceServer) DeleteCompetition(context.Context, *DeleteCompetitionRequest) (*DeleteCompetitionResponse, error) { +func (UnimplementedCompetitionServiceServer) DeleteCompetition(context.Context, *DeleteCompetitionRequest) (*emptypb.Empty, error) { return nil, status.Error(codes.Unimplemented, "method DeleteCompetition not implemented") } func (UnimplementedCompetitionServiceServer) ListCompetitions(context.Context, *ListCompetitionsRequest) (*ListCompetitionsResponse, error) { diff --git a/pkg/api/task/task.pb.go b/pkg/api/task/task.pb.go index d2215ae..1e0b9b5 100644 --- a/pkg/api/task/task.pb.go +++ b/pkg/api/task/task.pb.go @@ -9,6 +9,7 @@ package task import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + emptypb "google.golang.org/protobuf/types/known/emptypb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" @@ -338,50 +339,6 @@ func (x *DeleteTaskRequest) GetTaskId() string { return "" } -type DeleteTaskResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *DeleteTaskResponse) Reset() { - *x = DeleteTaskResponse{} - mi := &file_api_proto_task_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeleteTaskResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteTaskResponse) ProtoMessage() {} - -func (x *DeleteTaskResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_proto_task_proto_msgTypes[4] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeleteTaskResponse.ProtoReflect.Descriptor instead. -func (*DeleteTaskResponse) Descriptor() ([]byte, []int) { - return file_api_proto_task_proto_rawDescGZIP(), []int{4} -} - -func (x *DeleteTaskResponse) GetSuccess() bool { - if x != nil { - return x.Success - } - return false -} - type ListCompetitionTasksRequest struct { state protoimpl.MessageState `protogen:"open.v1"` CompetitionId string `protobuf:"bytes,1,opt,name=competition_id,json=competitionId,proto3" json:"competition_id,omitempty"` @@ -391,7 +348,7 @@ type ListCompetitionTasksRequest struct { func (x *ListCompetitionTasksRequest) Reset() { *x = ListCompetitionTasksRequest{} - mi := &file_api_proto_task_proto_msgTypes[5] + mi := &file_api_proto_task_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -403,7 +360,7 @@ func (x *ListCompetitionTasksRequest) String() string { func (*ListCompetitionTasksRequest) ProtoMessage() {} func (x *ListCompetitionTasksRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_proto_task_proto_msgTypes[5] + mi := &file_api_proto_task_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -416,7 +373,7 @@ func (x *ListCompetitionTasksRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListCompetitionTasksRequest.ProtoReflect.Descriptor instead. func (*ListCompetitionTasksRequest) Descriptor() ([]byte, []int) { - return file_api_proto_task_proto_rawDescGZIP(), []int{5} + return file_api_proto_task_proto_rawDescGZIP(), []int{4} } func (x *ListCompetitionTasksRequest) GetCompetitionId() string { @@ -435,7 +392,7 @@ type ListCompetitionTasksResponse struct { func (x *ListCompetitionTasksResponse) Reset() { *x = ListCompetitionTasksResponse{} - mi := &file_api_proto_task_proto_msgTypes[6] + mi := &file_api_proto_task_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -447,7 +404,7 @@ func (x *ListCompetitionTasksResponse) String() string { func (*ListCompetitionTasksResponse) ProtoMessage() {} func (x *ListCompetitionTasksResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_proto_task_proto_msgTypes[6] + mi := &file_api_proto_task_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -460,7 +417,7 @@ func (x *ListCompetitionTasksResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListCompetitionTasksResponse.ProtoReflect.Descriptor instead. func (*ListCompetitionTasksResponse) Descriptor() ([]byte, []int) { - return file_api_proto_task_proto_rawDescGZIP(), []int{6} + return file_api_proto_task_proto_rawDescGZIP(), []int{5} } func (x *ListCompetitionTasksResponse) GetTasks() []*Task { @@ -480,7 +437,7 @@ type GetTaskAttachmentsRequest struct { func (x *GetTaskAttachmentsRequest) Reset() { *x = GetTaskAttachmentsRequest{} - mi := &file_api_proto_task_proto_msgTypes[7] + mi := &file_api_proto_task_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -492,7 +449,7 @@ func (x *GetTaskAttachmentsRequest) String() string { func (*GetTaskAttachmentsRequest) ProtoMessage() {} func (x *GetTaskAttachmentsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_proto_task_proto_msgTypes[7] + mi := &file_api_proto_task_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -505,7 +462,7 @@ func (x *GetTaskAttachmentsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTaskAttachmentsRequest.ProtoReflect.Descriptor instead. func (*GetTaskAttachmentsRequest) Descriptor() ([]byte, []int) { - return file_api_proto_task_proto_rawDescGZIP(), []int{7} + return file_api_proto_task_proto_rawDescGZIP(), []int{6} } func (x *GetTaskAttachmentsRequest) GetTaskId() string { @@ -531,7 +488,7 @@ type GetTaskAttachmentsResponse struct { func (x *GetTaskAttachmentsResponse) Reset() { *x = GetTaskAttachmentsResponse{} - mi := &file_api_proto_task_proto_msgTypes[8] + mi := &file_api_proto_task_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -543,7 +500,7 @@ func (x *GetTaskAttachmentsResponse) String() string { func (*GetTaskAttachmentsResponse) ProtoMessage() {} func (x *GetTaskAttachmentsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_proto_task_proto_msgTypes[8] + mi := &file_api_proto_task_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -556,7 +513,7 @@ func (x *GetTaskAttachmentsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTaskAttachmentsResponse.ProtoReflect.Descriptor instead. func (*GetTaskAttachmentsResponse) Descriptor() ([]byte, []int) { - return file_api_proto_task_proto_rawDescGZIP(), []int{8} + return file_api_proto_task_proto_rawDescGZIP(), []int{7} } func (x *GetTaskAttachmentsResponse) GetAttachments() []*TaskAttachment { @@ -570,7 +527,7 @@ var File_api_proto_task_proto protoreflect.FileDescriptor const file_api_proto_task_proto_rawDesc = "" + "\n" + - "\x14api/proto/task.proto\x12\x04task\x1a\x1fgoogle/protobuf/timestamp.proto\"\x89\x03\n" + + "\x14api/proto/task.proto\x12\x04task\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\"\x89\x03\n" + "\x04Task\x12\x0e\n" + "\x02id\x18\x01 \x01(\tR\x02id\x12%\n" + "\x0ecompetition_id\x18\x02 \x01(\tR\rcompetitionId\x12\x14\n" + @@ -593,9 +550,7 @@ const file_api_proto_task_proto_rawDesc = "" + "\x0eGetTaskRequest\x12\x17\n" + "\atask_id\x18\x01 \x01(\tR\x06taskId\",\n" + "\x11DeleteTaskRequest\x12\x17\n" + - "\atask_id\x18\x01 \x01(\tR\x06taskId\".\n" + - "\x12DeleteTaskResponse\x12\x18\n" + - "\asuccess\x18\x01 \x01(\bR\asuccess\"D\n" + + "\atask_id\x18\x01 \x01(\tR\x06taskId\"D\n" + "\x1bListCompetitionTasksRequest\x12%\n" + "\x0ecompetition_id\x18\x01 \x01(\tR\rcompetitionId\"@\n" + "\x1cListCompetitionTasksResponse\x12 \n" + @@ -611,7 +566,7 @@ const file_api_proto_task_proto_rawDesc = "" + "\x15TASK_TYPE_UNSPECIFIED\x10\x00\x12\x13\n" + "\x0fTASK_TYPE_INPUT\x10\x01\x12\x15\n" + "\x11TASK_TYPE_CHECKER\x10\x02\x12\x14\n" + - "\x10TASK_TYPE_REVIEW\x10\x032\xfd\x02\n" + + "\x10TASK_TYPE_REVIEW\x10\x032\xfb\x02\n" + "\vTaskService\x12$\n" + "\n" + "CreateTask\x12\n" + @@ -621,9 +576,9 @@ const file_api_proto_task_proto_rawDesc = "" + ".task.Task\x12\"\n" + "\bEditTask\x12\n" + ".task.Task\x1a\n" + - ".task.Task\x12?\n" + + ".task.Task\x12=\n" + "\n" + - "DeleteTask\x12\x17.task.DeleteTaskRequest\x1a\x18.task.DeleteTaskResponse\x12]\n" + + "DeleteTask\x12\x17.task.DeleteTaskRequest\x1a\x16.google.protobuf.Empty\x12]\n" + "\x14ListCompetitionTasks\x12!.task.ListCompetitionTasksRequest\x1a\".task.ListCompetitionTasksResponse\x12W\n" + "\x12GetTaskAttachments\x12\x1f.task.GetTaskAttachmentsRequest\x1a .task.GetTaskAttachmentsResponseB\x0eZ\fpkg/api/taskb\x06proto3" @@ -640,38 +595,38 @@ func file_api_proto_task_proto_rawDescGZIP() []byte { } var file_api_proto_task_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_api_proto_task_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_api_proto_task_proto_msgTypes = make([]protoimpl.MessageInfo, 8) var file_api_proto_task_proto_goTypes = []any{ (TaskType)(0), // 0: task.TaskType (*Task)(nil), // 1: task.Task (*TaskAttachment)(nil), // 2: task.TaskAttachment (*GetTaskRequest)(nil), // 3: task.GetTaskRequest (*DeleteTaskRequest)(nil), // 4: task.DeleteTaskRequest - (*DeleteTaskResponse)(nil), // 5: task.DeleteTaskResponse - (*ListCompetitionTasksRequest)(nil), // 6: task.ListCompetitionTasksRequest - (*ListCompetitionTasksResponse)(nil), // 7: task.ListCompetitionTasksResponse - (*GetTaskAttachmentsRequest)(nil), // 8: task.GetTaskAttachmentsRequest - (*GetTaskAttachmentsResponse)(nil), // 9: task.GetTaskAttachmentsResponse - (*timestamppb.Timestamp)(nil), // 10: google.protobuf.Timestamp + (*ListCompetitionTasksRequest)(nil), // 5: task.ListCompetitionTasksRequest + (*ListCompetitionTasksResponse)(nil), // 6: task.ListCompetitionTasksResponse + (*GetTaskAttachmentsRequest)(nil), // 7: task.GetTaskAttachmentsRequest + (*GetTaskAttachmentsResponse)(nil), // 8: task.GetTaskAttachmentsResponse + (*timestamppb.Timestamp)(nil), // 9: google.protobuf.Timestamp + (*emptypb.Empty)(nil), // 10: google.protobuf.Empty } var file_api_proto_task_proto_depIdxs = []int32{ 0, // 0: task.Task.type:type_name -> task.TaskType - 10, // 1: task.Task.created_at:type_name -> google.protobuf.Timestamp - 10, // 2: task.Task.updated_at:type_name -> google.protobuf.Timestamp + 9, // 1: task.Task.created_at:type_name -> google.protobuf.Timestamp + 9, // 2: task.Task.updated_at:type_name -> google.protobuf.Timestamp 1, // 3: task.ListCompetitionTasksResponse.tasks:type_name -> task.Task 2, // 4: task.GetTaskAttachmentsResponse.attachments:type_name -> task.TaskAttachment 1, // 5: task.TaskService.CreateTask:input_type -> task.Task 3, // 6: task.TaskService.GetTask:input_type -> task.GetTaskRequest 1, // 7: task.TaskService.EditTask:input_type -> task.Task 4, // 8: task.TaskService.DeleteTask:input_type -> task.DeleteTaskRequest - 6, // 9: task.TaskService.ListCompetitionTasks:input_type -> task.ListCompetitionTasksRequest - 8, // 10: task.TaskService.GetTaskAttachments:input_type -> task.GetTaskAttachmentsRequest + 5, // 9: task.TaskService.ListCompetitionTasks:input_type -> task.ListCompetitionTasksRequest + 7, // 10: task.TaskService.GetTaskAttachments:input_type -> task.GetTaskAttachmentsRequest 1, // 11: task.TaskService.CreateTask:output_type -> task.Task 1, // 12: task.TaskService.GetTask:output_type -> task.Task 1, // 13: task.TaskService.EditTask:output_type -> task.Task - 5, // 14: task.TaskService.DeleteTask:output_type -> task.DeleteTaskResponse - 7, // 15: task.TaskService.ListCompetitionTasks:output_type -> task.ListCompetitionTasksResponse - 9, // 16: task.TaskService.GetTaskAttachments:output_type -> task.GetTaskAttachmentsResponse + 10, // 14: task.TaskService.DeleteTask:output_type -> google.protobuf.Empty + 6, // 15: task.TaskService.ListCompetitionTasks:output_type -> task.ListCompetitionTasksResponse + 8, // 16: task.TaskService.GetTaskAttachments:output_type -> task.GetTaskAttachmentsResponse 11, // [11:17] is the sub-list for method output_type 5, // [5:11] is the sub-list for method input_type 5, // [5:5] is the sub-list for extension type_name @@ -684,14 +639,14 @@ func file_api_proto_task_proto_init() { if File_api_proto_task_proto != nil { return } - file_api_proto_task_proto_msgTypes[7].OneofWrappers = []any{} + file_api_proto_task_proto_msgTypes[6].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_api_proto_task_proto_rawDesc), len(file_api_proto_task_proto_rawDesc)), NumEnums: 1, - NumMessages: 9, + NumMessages: 8, NumExtensions: 0, NumServices: 1, }, diff --git a/pkg/api/task/task_grpc.pb.go b/pkg/api/task/task_grpc.pb.go index 36f0468..ad27c11 100644 --- a/pkg/api/task/task_grpc.pb.go +++ b/pkg/api/task/task_grpc.pb.go @@ -11,6 +11,7 @@ import ( grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" + emptypb "google.golang.org/protobuf/types/known/emptypb" ) // This is a compile-time assertion to ensure that this generated file @@ -34,7 +35,7 @@ type TaskServiceClient interface { CreateTask(ctx context.Context, in *Task, opts ...grpc.CallOption) (*Task, error) GetTask(ctx context.Context, in *GetTaskRequest, opts ...grpc.CallOption) (*Task, error) EditTask(ctx context.Context, in *Task, opts ...grpc.CallOption) (*Task, error) - DeleteTask(ctx context.Context, in *DeleteTaskRequest, opts ...grpc.CallOption) (*DeleteTaskResponse, error) + DeleteTask(ctx context.Context, in *DeleteTaskRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) ListCompetitionTasks(ctx context.Context, in *ListCompetitionTasksRequest, opts ...grpc.CallOption) (*ListCompetitionTasksResponse, error) GetTaskAttachments(ctx context.Context, in *GetTaskAttachmentsRequest, opts ...grpc.CallOption) (*GetTaskAttachmentsResponse, error) } @@ -77,9 +78,9 @@ func (c *taskServiceClient) EditTask(ctx context.Context, in *Task, opts ...grpc return out, nil } -func (c *taskServiceClient) DeleteTask(ctx context.Context, in *DeleteTaskRequest, opts ...grpc.CallOption) (*DeleteTaskResponse, error) { +func (c *taskServiceClient) DeleteTask(ctx context.Context, in *DeleteTaskRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(DeleteTaskResponse) + out := new(emptypb.Empty) err := c.cc.Invoke(ctx, TaskService_DeleteTask_FullMethodName, in, out, cOpts...) if err != nil { return nil, err @@ -114,7 +115,7 @@ type TaskServiceServer interface { CreateTask(context.Context, *Task) (*Task, error) GetTask(context.Context, *GetTaskRequest) (*Task, error) EditTask(context.Context, *Task) (*Task, error) - DeleteTask(context.Context, *DeleteTaskRequest) (*DeleteTaskResponse, error) + DeleteTask(context.Context, *DeleteTaskRequest) (*emptypb.Empty, error) ListCompetitionTasks(context.Context, *ListCompetitionTasksRequest) (*ListCompetitionTasksResponse, error) GetTaskAttachments(context.Context, *GetTaskAttachmentsRequest) (*GetTaskAttachmentsResponse, error) mustEmbedUnimplementedTaskServiceServer() @@ -136,7 +137,7 @@ func (UnimplementedTaskServiceServer) GetTask(context.Context, *GetTaskRequest) func (UnimplementedTaskServiceServer) EditTask(context.Context, *Task) (*Task, error) { return nil, status.Error(codes.Unimplemented, "method EditTask not implemented") } -func (UnimplementedTaskServiceServer) DeleteTask(context.Context, *DeleteTaskRequest) (*DeleteTaskResponse, error) { +func (UnimplementedTaskServiceServer) DeleteTask(context.Context, *DeleteTaskRequest) (*emptypb.Empty, error) { return nil, status.Error(codes.Unimplemented, "method DeleteTask not implemented") } func (UnimplementedTaskServiceServer) ListCompetitionTasks(context.Context, *ListCompetitionTasksRequest) (*ListCompetitionTasksResponse, error) {