diff --git a/api/main.proto b/api/main.proto index 7bc693d..83b6cea 100644 --- a/api/main.proto +++ b/api/main.proto @@ -240,6 +240,28 @@ service EveningDetectiveServer { }; } + rpc PublicScenario(PublicScenarioReq) returns (PublicScenarioRsp) { + option (google.api.http) = { + put : "/api/scenarios/{id}/public" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + tags : "Сценарии"; + summary: "Опубликовать сценарий"; + }; + } + + rpc DraftScenario(DraftScenarioReq) returns (DraftScenarioRsp) { + option (google.api.http) = { + put : "/api/scenarios/{id}/draft" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + tags : "Сценарии"; + summary: "Снять с публикации сценарий"; + }; + } + rpc DeleteScenario(DeleteScenarioReq) returns (DeleteScenarioRsp) { option (google.api.http) = { delete: "/api/scenarios/{id}" @@ -482,6 +504,22 @@ message UpdateScenarioRsp { string error = 1; } +message PublicScenarioReq { + int32 id = 1; +} + +message PublicScenarioRsp { + string error = 1; +} + +message DraftScenarioReq { + int32 id = 1; +} + +message DraftScenarioRsp { + string error = 1; +} + message DeleteScenarioReq { int32 id = 1; } diff --git a/cmd/evening_detective_server/main.swagger.json b/cmd/evening_detective_server/main.swagger.json index 64c7e55..3d37168 100644 --- a/cmd/evening_detective_server/main.swagger.json +++ b/cmd/evening_detective_server/main.swagger.json @@ -388,6 +388,46 @@ ] } }, + "/api/scenarios/{id}/draft": { + "put": { + "summary": "Снять с публикации сценарий", + "operationId": "EveningDetectiveServer_DraftScenario", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/evening_detective_serverDraftScenarioRsp" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "integer", + "format": "int32" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/EveningDetectiveServerDraftScenarioBody" + } + } + ], + "tags": [ + "Сценарии" + ] + } + }, "/api/scenarios/{id}/places": { "post": { "summary": "Создать точку сценария", @@ -510,6 +550,46 @@ ] } }, + "/api/scenarios/{id}/public": { + "put": { + "summary": "Опубликовать сценарий", + "operationId": "EveningDetectiveServer_PublicScenario", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/evening_detective_serverPublicScenarioRsp" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "integer", + "format": "int32" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/EveningDetectiveServerPublicScenarioBody" + } + } + ], + "tags": [ + "Сценарии" + ] + } + }, "/api/test/echo": { "post": { "summary": "Проверить обработку данных", @@ -781,6 +861,12 @@ } } }, + "EveningDetectiveServerDraftScenarioBody": { + "type": "object" + }, + "EveningDetectiveServerPublicScenarioBody": { + "type": "object" + }, "EveningDetectiveServerUpdateScenarioBody": { "type": "object", "properties": { @@ -915,6 +1001,14 @@ } } }, + "evening_detective_serverDraftScenarioRsp": { + "type": "object", + "properties": { + "error": { + "type": "string" + } + } + }, "evening_detective_serverEchoRsp": { "type": "object", "properties": { @@ -1077,6 +1171,14 @@ } } }, + "evening_detective_serverPublicScenarioRsp": { + "type": "object", + "properties": { + "error": { + "type": "string" + } + } + }, "evening_detective_serverRefreshPasswordReq": { "type": "object", "properties": { diff --git a/internal/app/server.go b/internal/app/server.go index a123d44..8e382d4 100644 --- a/internal/app/server.go +++ b/internal/app/server.go @@ -282,6 +282,46 @@ func (s *server) UpdateScenario(ctx context.Context, req *proto.UpdateScenarioRe return &proto.UpdateScenarioRsp{}, nil } +func (s *server) PublicScenario(ctx context.Context, req *proto.PublicScenarioReq) (*proto.PublicScenarioRsp, error) { + claims := ctx.Value("claims").(*processor_jwt.JWTClaims) + if !roles.HasRole(claims, roles.Author) { + return nil, status.Errorf(codes.PermissionDenied, "permission denied") + } + + err := s.scenarioService.UpdateScenarioStatusByID( + ctx, + int(req.Id), + "public", + ) + if err != nil { + return &proto.PublicScenarioRsp{ + Error: err.Error(), + }, nil + } + + return &proto.PublicScenarioRsp{}, nil +} + +func (s *server) DraftScenario(ctx context.Context, req *proto.DraftScenarioReq) (*proto.DraftScenarioRsp, error) { + claims := ctx.Value("claims").(*processor_jwt.JWTClaims) + if !roles.HasRole(claims, roles.Author) { + return nil, status.Errorf(codes.PermissionDenied, "permission denied") + } + + err := s.scenarioService.UpdateScenarioStatusByID( + ctx, + int(req.Id), + "draft", + ) + if err != nil { + return &proto.DraftScenarioRsp{ + Error: err.Error(), + }, nil + } + + return &proto.DraftScenarioRsp{}, nil +} + func (s *server) DeleteScenario(ctx context.Context, req *proto.DeleteScenarioReq) (*proto.DeleteScenarioRsp, error) { claims := ctx.Value("claims").(*processor_jwt.JWTClaims) if !roles.HasRole(claims, roles.Author) { diff --git a/internal/repos/scenarios_repo/repo.go b/internal/repos/scenarios_repo/repo.go index 7fcebe8..d3ff373 100644 --- a/internal/repos/scenarios_repo/repo.go +++ b/internal/repos/scenarios_repo/repo.go @@ -184,6 +184,31 @@ func (s *ScenariosRepo) UpdateScenarioByID( return nil } +func (s *ScenariosRepo) UpdateScenarioStatusByID( + ctx context.Context, + id int, + status string, +) error { + tag, err := s.pool.Exec( + ctx, + `UPDATE scenarios + SET + status = $1, + published_at = NOW(), + updated_at = NOW() + WHERE id = $2`, + status, + id, + ) + if err != nil { + return err + } + if tag.RowsAffected() == 0 { + return ErrScenarioNotFound + } + return nil +} + func (s *ScenariosRepo) DeleteScenarioByID( ctx context.Context, id int, diff --git a/internal/services/scenarios_service/service.go b/internal/services/scenarios_service/service.go index 02bd7b9..f5f971f 100644 --- a/internal/services/scenarios_service/service.go +++ b/internal/services/scenarios_service/service.go @@ -67,6 +67,14 @@ func (s *ScenarioService) UpdateScenarioByID( return s.scenariosRepo.UpdateScenarioByID(ctx, id, name, description, image) } +func (s *ScenarioService) UpdateScenarioStatusByID( + ctx context.Context, + id int, + status string, +) error { + return s.scenariosRepo.UpdateScenarioStatusByID(ctx, id, status) +} + func (s *ScenarioService) DeleteScenarioByID( ctx context.Context, id int, diff --git a/proto/main.pb.go b/proto/main.pb.go index 1698d0c..bf91974 100644 --- a/proto/main.pb.go +++ b/proto/main.pb.go @@ -2169,6 +2169,182 @@ func (x *UpdateScenarioRsp) GetError() string { return "" } +type PublicScenarioReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PublicScenarioReq) Reset() { + *x = PublicScenarioReq{} + mi := &file_main_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PublicScenarioReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PublicScenarioReq) ProtoMessage() {} + +func (x *PublicScenarioReq) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[42] + 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 PublicScenarioReq.ProtoReflect.Descriptor instead. +func (*PublicScenarioReq) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{42} +} + +func (x *PublicScenarioReq) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +type PublicScenarioRsp struct { + state protoimpl.MessageState `protogen:"open.v1"` + Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PublicScenarioRsp) Reset() { + *x = PublicScenarioRsp{} + mi := &file_main_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PublicScenarioRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PublicScenarioRsp) ProtoMessage() {} + +func (x *PublicScenarioRsp) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[43] + 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 PublicScenarioRsp.ProtoReflect.Descriptor instead. +func (*PublicScenarioRsp) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{43} +} + +func (x *PublicScenarioRsp) GetError() string { + if x != nil { + return x.Error + } + return "" +} + +type DraftScenarioReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DraftScenarioReq) Reset() { + *x = DraftScenarioReq{} + mi := &file_main_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DraftScenarioReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DraftScenarioReq) ProtoMessage() {} + +func (x *DraftScenarioReq) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[44] + 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 DraftScenarioReq.ProtoReflect.Descriptor instead. +func (*DraftScenarioReq) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{44} +} + +func (x *DraftScenarioReq) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +type DraftScenarioRsp struct { + state protoimpl.MessageState `protogen:"open.v1"` + Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DraftScenarioRsp) Reset() { + *x = DraftScenarioRsp{} + mi := &file_main_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DraftScenarioRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DraftScenarioRsp) ProtoMessage() {} + +func (x *DraftScenarioRsp) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[45] + 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 DraftScenarioRsp.ProtoReflect.Descriptor instead. +func (*DraftScenarioRsp) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{45} +} + +func (x *DraftScenarioRsp) GetError() string { + if x != nil { + return x.Error + } + return "" +} + type DeleteScenarioReq struct { state protoimpl.MessageState `protogen:"open.v1"` Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` @@ -2178,7 +2354,7 @@ type DeleteScenarioReq struct { func (x *DeleteScenarioReq) Reset() { *x = DeleteScenarioReq{} - mi := &file_main_proto_msgTypes[42] + mi := &file_main_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2190,7 +2366,7 @@ func (x *DeleteScenarioReq) String() string { func (*DeleteScenarioReq) ProtoMessage() {} func (x *DeleteScenarioReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[42] + mi := &file_main_proto_msgTypes[46] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2203,7 +2379,7 @@ func (x *DeleteScenarioReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteScenarioReq.ProtoReflect.Descriptor instead. func (*DeleteScenarioReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{42} + return file_main_proto_rawDescGZIP(), []int{46} } func (x *DeleteScenarioReq) GetId() int32 { @@ -2222,7 +2398,7 @@ type DeleteScenarioRsp struct { func (x *DeleteScenarioRsp) Reset() { *x = DeleteScenarioRsp{} - mi := &file_main_proto_msgTypes[43] + mi := &file_main_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2234,7 +2410,7 @@ func (x *DeleteScenarioRsp) String() string { func (*DeleteScenarioRsp) ProtoMessage() {} func (x *DeleteScenarioRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[43] + mi := &file_main_proto_msgTypes[47] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2247,7 +2423,7 @@ func (x *DeleteScenarioRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteScenarioRsp.ProtoReflect.Descriptor instead. func (*DeleteScenarioRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{43} + return file_main_proto_rawDescGZIP(), []int{47} } func (x *DeleteScenarioRsp) GetError() string { @@ -2267,7 +2443,7 @@ type AddScenarioPlaceReq struct { func (x *AddScenarioPlaceReq) Reset() { *x = AddScenarioPlaceReq{} - mi := &file_main_proto_msgTypes[44] + mi := &file_main_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2279,7 +2455,7 @@ func (x *AddScenarioPlaceReq) String() string { func (*AddScenarioPlaceReq) ProtoMessage() {} func (x *AddScenarioPlaceReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[44] + mi := &file_main_proto_msgTypes[48] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2292,7 +2468,7 @@ func (x *AddScenarioPlaceReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AddScenarioPlaceReq.ProtoReflect.Descriptor instead. func (*AddScenarioPlaceReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{44} + return file_main_proto_rawDescGZIP(), []int{48} } func (x *AddScenarioPlaceReq) GetId() int32 { @@ -2318,7 +2494,7 @@ type AddScenarioPlaceRsp struct { func (x *AddScenarioPlaceRsp) Reset() { *x = AddScenarioPlaceRsp{} - mi := &file_main_proto_msgTypes[45] + mi := &file_main_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2330,7 +2506,7 @@ func (x *AddScenarioPlaceRsp) String() string { func (*AddScenarioPlaceRsp) ProtoMessage() {} func (x *AddScenarioPlaceRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[45] + mi := &file_main_proto_msgTypes[49] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2343,7 +2519,7 @@ func (x *AddScenarioPlaceRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use AddScenarioPlaceRsp.ProtoReflect.Descriptor instead. func (*AddScenarioPlaceRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{45} + return file_main_proto_rawDescGZIP(), []int{49} } func (x *AddScenarioPlaceRsp) GetError() string { @@ -2364,7 +2540,7 @@ type UpdateScenarioPlaceReq struct { func (x *UpdateScenarioPlaceReq) Reset() { *x = UpdateScenarioPlaceReq{} - mi := &file_main_proto_msgTypes[46] + mi := &file_main_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2376,7 +2552,7 @@ func (x *UpdateScenarioPlaceReq) String() string { func (*UpdateScenarioPlaceReq) ProtoMessage() {} func (x *UpdateScenarioPlaceReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[46] + mi := &file_main_proto_msgTypes[50] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2389,7 +2565,7 @@ func (x *UpdateScenarioPlaceReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioPlaceReq.ProtoReflect.Descriptor instead. func (*UpdateScenarioPlaceReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{46} + return file_main_proto_rawDescGZIP(), []int{50} } func (x *UpdateScenarioPlaceReq) GetId() int32 { @@ -2422,7 +2598,7 @@ type UpdateScenarioPlaceRsp struct { func (x *UpdateScenarioPlaceRsp) Reset() { *x = UpdateScenarioPlaceRsp{} - mi := &file_main_proto_msgTypes[47] + mi := &file_main_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2434,7 +2610,7 @@ func (x *UpdateScenarioPlaceRsp) String() string { func (*UpdateScenarioPlaceRsp) ProtoMessage() {} func (x *UpdateScenarioPlaceRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[47] + mi := &file_main_proto_msgTypes[51] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2447,7 +2623,7 @@ func (x *UpdateScenarioPlaceRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioPlaceRsp.ProtoReflect.Descriptor instead. func (*UpdateScenarioPlaceRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{47} + return file_main_proto_rawDescGZIP(), []int{51} } func (x *UpdateScenarioPlaceRsp) GetError() string { @@ -2467,7 +2643,7 @@ type DeleteScenarioPlaceReq struct { func (x *DeleteScenarioPlaceReq) Reset() { *x = DeleteScenarioPlaceReq{} - mi := &file_main_proto_msgTypes[48] + mi := &file_main_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2479,7 +2655,7 @@ func (x *DeleteScenarioPlaceReq) String() string { func (*DeleteScenarioPlaceReq) ProtoMessage() {} func (x *DeleteScenarioPlaceReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[48] + mi := &file_main_proto_msgTypes[52] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2492,7 +2668,7 @@ func (x *DeleteScenarioPlaceReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteScenarioPlaceReq.ProtoReflect.Descriptor instead. func (*DeleteScenarioPlaceReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{48} + return file_main_proto_rawDescGZIP(), []int{52} } func (x *DeleteScenarioPlaceReq) GetId() int32 { @@ -2518,7 +2694,7 @@ type DeleteScenarioPlaceRsp struct { func (x *DeleteScenarioPlaceRsp) Reset() { *x = DeleteScenarioPlaceRsp{} - mi := &file_main_proto_msgTypes[49] + mi := &file_main_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2530,7 +2706,7 @@ func (x *DeleteScenarioPlaceRsp) String() string { func (*DeleteScenarioPlaceRsp) ProtoMessage() {} func (x *DeleteScenarioPlaceRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[49] + mi := &file_main_proto_msgTypes[53] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2543,7 +2719,7 @@ func (x *DeleteScenarioPlaceRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteScenarioPlaceRsp.ProtoReflect.Descriptor instead. func (*DeleteScenarioPlaceRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{49} + return file_main_proto_rawDescGZIP(), []int{53} } func (x *DeleteScenarioPlaceRsp) GetError() string { @@ -2688,6 +2864,14 @@ const file_main_proto_rawDesc = "" + "\x05image\x18\x04 \x01(\tR\x05image\")\n" + "\x11UpdateScenarioRsp\x12\x14\n" + "\x05error\x18\x01 \x01(\tR\x05error\"#\n" + + "\x11PublicScenarioReq\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x05R\x02id\")\n" + + "\x11PublicScenarioRsp\x12\x14\n" + + "\x05error\x18\x01 \x01(\tR\x05error\"\"\n" + + "\x10DraftScenarioReq\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x05R\x02id\"(\n" + + "\x10DraftScenarioRsp\x12\x14\n" + + "\x05error\x18\x01 \x01(\tR\x05error\"#\n" + "\x11DeleteScenarioReq\x12\x0e\n" + "\x02id\x18\x01 \x01(\x05R\x02id\")\n" + "\x11DeleteScenarioRsp\x12\x14\n" + @@ -2707,7 +2891,7 @@ const file_main_proto_rawDesc = "" + "\x02id\x18\x01 \x01(\x05R\x02id\x12\x12\n" + "\x04code\x18\x02 \x01(\tR\x04code\".\n" + "\x16DeleteScenarioPlaceRsp\x12\x14\n" + - "\x05error\x18\x01 \x01(\tR\x05error2\x9b%\n" + + "\x05error\x18\x01 \x01(\tR\x05error2\xe1(\n" + "\x16EveningDetectiveServer\x12\xa6\x01\n" + "\x04Ping\x12'.crabs.evening_detective_server.PingReq\x1a'.crabs.evening_detective_server.PingRsp\"L\x92A3\x12)Проверить доступностьb\x06\n" + "\x04\n" + @@ -2758,7 +2942,11 @@ const file_main_proto_rawDesc = "" + "\vGetScenario\x12..crabs.evening_detective_server.GetScenarioReq\x1a..crabs.evening_detective_server.GetScenarioRsp\"[\x92A=\n" + "\x10Сценарии\x12)Получить сценарий по id\x82\xd3\xe4\x93\x02\x15\x12\x13/api/scenarios/{id}\x12\xd8\x01\n" + "\x0eUpdateScenario\x121.crabs.evening_detective_server.UpdateScenarioReq\x1a1.crabs.evening_detective_server.UpdateScenarioRsp\"`\x92A?\n" + - "\x10Сценарии\x12+Редактировать сценарий\x82\xd3\xe4\x93\x02\x18:\x01*\x1a\x13/api/scenarios/{id}\x12\xc9\x01\n" + + "\x10Сценарии\x12+Редактировать сценарий\x82\xd3\xe4\x93\x02\x18:\x01*\x1a\x13/api/scenarios/{id}\x12\xdd\x01\n" + + "\x0ePublicScenario\x121.crabs.evening_detective_server.PublicScenarioReq\x1a1.crabs.evening_detective_server.PublicScenarioRsp\"e\x92A=\n" + + "\x10Сценарии\x12)Опубликовать сценарий\x82\xd3\xe4\x93\x02\x1f:\x01*\x1a\x1a/api/scenarios/{id}/public\x12\xe3\x01\n" + + "\rDraftScenario\x120.crabs.evening_detective_server.DraftScenarioReq\x1a0.crabs.evening_detective_server.DraftScenarioRsp\"n\x92AG\n" + + "\x10Сценарии\x123Снять с публикации сценарий\x82\xd3\xe4\x93\x02\x1e:\x01*\x1a\x19/api/scenarios/{id}/draft\x12\xc9\x01\n" + "\x0eDeleteScenario\x121.crabs.evening_detective_server.DeleteScenarioReq\x1a1.crabs.evening_detective_server.DeleteScenarioRsp\"Q\x92A3\n" + "\x10Сценарии\x12\x1fУдалить сценарий\x82\xd3\xe4\x93\x02\x15*\x13/api/scenarios/{id}\x12\xef\x01\n" + "\x10AddScenarioPlace\x123.crabs.evening_detective_server.AddScenarioPlaceReq\x1a3.crabs.evening_detective_server.AddScenarioPlaceRsp\"q\x92AI\n" + @@ -2787,7 +2975,7 @@ func file_main_proto_rawDescGZIP() []byte { return file_main_proto_rawDescData } -var file_main_proto_msgTypes = make([]protoimpl.MessageInfo, 50) +var file_main_proto_msgTypes = make([]protoimpl.MessageInfo, 54) var file_main_proto_goTypes = []any{ (*PingReq)(nil), // 0: crabs.evening_detective_server.PingReq (*PingRsp)(nil), // 1: crabs.evening_detective_server.PingRsp @@ -2831,29 +3019,33 @@ var file_main_proto_goTypes = []any{ (*Key)(nil), // 39: crabs.evening_detective_server.Key (*UpdateScenarioReq)(nil), // 40: crabs.evening_detective_server.UpdateScenarioReq (*UpdateScenarioRsp)(nil), // 41: crabs.evening_detective_server.UpdateScenarioRsp - (*DeleteScenarioReq)(nil), // 42: crabs.evening_detective_server.DeleteScenarioReq - (*DeleteScenarioRsp)(nil), // 43: crabs.evening_detective_server.DeleteScenarioRsp - (*AddScenarioPlaceReq)(nil), // 44: crabs.evening_detective_server.AddScenarioPlaceReq - (*AddScenarioPlaceRsp)(nil), // 45: crabs.evening_detective_server.AddScenarioPlaceRsp - (*UpdateScenarioPlaceReq)(nil), // 46: crabs.evening_detective_server.UpdateScenarioPlaceReq - (*UpdateScenarioPlaceRsp)(nil), // 47: crabs.evening_detective_server.UpdateScenarioPlaceRsp - (*DeleteScenarioPlaceReq)(nil), // 48: crabs.evening_detective_server.DeleteScenarioPlaceReq - (*DeleteScenarioPlaceRsp)(nil), // 49: crabs.evening_detective_server.DeleteScenarioPlaceRsp - (*timestamppb.Timestamp)(nil), // 50: google.protobuf.Timestamp - (*httpbody.HttpBody)(nil), // 51: google.api.HttpBody + (*PublicScenarioReq)(nil), // 42: crabs.evening_detective_server.PublicScenarioReq + (*PublicScenarioRsp)(nil), // 43: crabs.evening_detective_server.PublicScenarioRsp + (*DraftScenarioReq)(nil), // 44: crabs.evening_detective_server.DraftScenarioReq + (*DraftScenarioRsp)(nil), // 45: crabs.evening_detective_server.DraftScenarioRsp + (*DeleteScenarioReq)(nil), // 46: crabs.evening_detective_server.DeleteScenarioReq + (*DeleteScenarioRsp)(nil), // 47: crabs.evening_detective_server.DeleteScenarioRsp + (*AddScenarioPlaceReq)(nil), // 48: crabs.evening_detective_server.AddScenarioPlaceReq + (*AddScenarioPlaceRsp)(nil), // 49: crabs.evening_detective_server.AddScenarioPlaceRsp + (*UpdateScenarioPlaceReq)(nil), // 50: crabs.evening_detective_server.UpdateScenarioPlaceReq + (*UpdateScenarioPlaceRsp)(nil), // 51: crabs.evening_detective_server.UpdateScenarioPlaceRsp + (*DeleteScenarioPlaceReq)(nil), // 52: crabs.evening_detective_server.DeleteScenarioPlaceReq + (*DeleteScenarioPlaceRsp)(nil), // 53: crabs.evening_detective_server.DeleteScenarioPlaceRsp + (*timestamppb.Timestamp)(nil), // 54: google.protobuf.Timestamp + (*httpbody.HttpBody)(nil), // 55: google.api.HttpBody } var file_main_proto_depIdxs = []int32{ 14, // 0: crabs.evening_detective_server.GetUsersRsp.users:type_name -> crabs.evening_detective_server.User - 50, // 1: crabs.evening_detective_server.User.created_at:type_name -> google.protobuf.Timestamp + 54, // 1: crabs.evening_detective_server.User.created_at:type_name -> google.protobuf.Timestamp 14, // 2: crabs.evening_detective_server.GetUserByIdRsp.user:type_name -> crabs.evening_detective_server.User 14, // 3: crabs.evening_detective_server.GetMeRsp.user:type_name -> crabs.evening_detective_server.User 34, // 4: crabs.evening_detective_server.GetMyScenariosRsp.scenarios:type_name -> crabs.evening_detective_server.Scenario 34, // 5: crabs.evening_detective_server.GetScenarioRsp.scenario:type_name -> crabs.evening_detective_server.Scenario 35, // 6: crabs.evening_detective_server.Scenario.story:type_name -> crabs.evening_detective_server.Story 14, // 7: crabs.evening_detective_server.Scenario.author:type_name -> crabs.evening_detective_server.User - 50, // 8: crabs.evening_detective_server.Scenario.updated_at:type_name -> google.protobuf.Timestamp - 50, // 9: crabs.evening_detective_server.Scenario.created_at:type_name -> google.protobuf.Timestamp - 50, // 10: crabs.evening_detective_server.Scenario.published_at:type_name -> google.protobuf.Timestamp + 54, // 8: crabs.evening_detective_server.Scenario.updated_at:type_name -> google.protobuf.Timestamp + 54, // 9: crabs.evening_detective_server.Scenario.created_at:type_name -> google.protobuf.Timestamp + 54, // 10: crabs.evening_detective_server.Scenario.published_at:type_name -> google.protobuf.Timestamp 36, // 11: crabs.evening_detective_server.Story.places:type_name -> crabs.evening_detective_server.Place 37, // 12: crabs.evening_detective_server.Place.applications:type_name -> crabs.evening_detective_server.Application 38, // 13: crabs.evening_detective_server.Place.doors:type_name -> crabs.evening_detective_server.Door @@ -2879,34 +3071,38 @@ var file_main_proto_depIdxs = []int32{ 30, // 33: crabs.evening_detective_server.EveningDetectiveServer.GetMyScenarios:input_type -> crabs.evening_detective_server.GetMyScenariosReq 32, // 34: crabs.evening_detective_server.EveningDetectiveServer.GetScenario:input_type -> crabs.evening_detective_server.GetScenarioReq 40, // 35: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenario:input_type -> crabs.evening_detective_server.UpdateScenarioReq - 42, // 36: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenario:input_type -> crabs.evening_detective_server.DeleteScenarioReq - 44, // 37: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioPlace:input_type -> crabs.evening_detective_server.AddScenarioPlaceReq - 46, // 38: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioPlace:input_type -> crabs.evening_detective_server.UpdateScenarioPlaceReq - 48, // 39: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioPlace:input_type -> crabs.evening_detective_server.DeleteScenarioPlaceReq - 1, // 40: crabs.evening_detective_server.EveningDetectiveServer.Ping:output_type -> crabs.evening_detective_server.PingRsp - 3, // 41: crabs.evening_detective_server.EveningDetectiveServer.Echo:output_type -> crabs.evening_detective_server.EchoRsp - 5, // 42: crabs.evening_detective_server.EveningDetectiveServer.Signup:output_type -> crabs.evening_detective_server.SignupRsp - 7, // 43: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:output_type -> crabs.evening_detective_server.RefreshPasswordRsp - 9, // 44: crabs.evening_detective_server.EveningDetectiveServer.Login:output_type -> crabs.evening_detective_server.LoginRsp - 11, // 45: crabs.evening_detective_server.EveningDetectiveServer.Refresh:output_type -> crabs.evening_detective_server.RefreshRsp - 13, // 46: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:output_type -> crabs.evening_detective_server.GetUsersRsp - 16, // 47: crabs.evening_detective_server.EveningDetectiveServer.GetUserById:output_type -> crabs.evening_detective_server.GetUserByIdRsp - 18, // 48: crabs.evening_detective_server.EveningDetectiveServer.GetMe:output_type -> crabs.evening_detective_server.GetMeRsp - 20, // 49: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:output_type -> crabs.evening_detective_server.AddUserRoleRsp - 22, // 50: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:output_type -> crabs.evening_detective_server.DeleteUserRoleRsp - 24, // 51: crabs.evening_detective_server.EveningDetectiveServer.GetPermissions:output_type -> crabs.evening_detective_server.GetPermissionsRsp - 26, // 52: crabs.evening_detective_server.EveningDetectiveServer.UploadFile:output_type -> crabs.evening_detective_server.UploadFileRsp - 51, // 53: crabs.evening_detective_server.EveningDetectiveServer.DownloadFile:output_type -> google.api.HttpBody - 29, // 54: crabs.evening_detective_server.EveningDetectiveServer.AddScenario:output_type -> crabs.evening_detective_server.AddScenarioRsp - 31, // 55: crabs.evening_detective_server.EveningDetectiveServer.GetMyScenarios:output_type -> crabs.evening_detective_server.GetMyScenariosRsp - 33, // 56: crabs.evening_detective_server.EveningDetectiveServer.GetScenario:output_type -> crabs.evening_detective_server.GetScenarioRsp - 41, // 57: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenario:output_type -> crabs.evening_detective_server.UpdateScenarioRsp - 43, // 58: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenario:output_type -> crabs.evening_detective_server.DeleteScenarioRsp - 45, // 59: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioPlace:output_type -> crabs.evening_detective_server.AddScenarioPlaceRsp - 47, // 60: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioPlace:output_type -> crabs.evening_detective_server.UpdateScenarioPlaceRsp - 49, // 61: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioPlace:output_type -> crabs.evening_detective_server.DeleteScenarioPlaceRsp - 40, // [40:62] is the sub-list for method output_type - 18, // [18:40] is the sub-list for method input_type + 42, // 36: crabs.evening_detective_server.EveningDetectiveServer.PublicScenario:input_type -> crabs.evening_detective_server.PublicScenarioReq + 44, // 37: crabs.evening_detective_server.EveningDetectiveServer.DraftScenario:input_type -> crabs.evening_detective_server.DraftScenarioReq + 46, // 38: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenario:input_type -> crabs.evening_detective_server.DeleteScenarioReq + 48, // 39: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioPlace:input_type -> crabs.evening_detective_server.AddScenarioPlaceReq + 50, // 40: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioPlace:input_type -> crabs.evening_detective_server.UpdateScenarioPlaceReq + 52, // 41: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioPlace:input_type -> crabs.evening_detective_server.DeleteScenarioPlaceReq + 1, // 42: crabs.evening_detective_server.EveningDetectiveServer.Ping:output_type -> crabs.evening_detective_server.PingRsp + 3, // 43: crabs.evening_detective_server.EveningDetectiveServer.Echo:output_type -> crabs.evening_detective_server.EchoRsp + 5, // 44: crabs.evening_detective_server.EveningDetectiveServer.Signup:output_type -> crabs.evening_detective_server.SignupRsp + 7, // 45: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:output_type -> crabs.evening_detective_server.RefreshPasswordRsp + 9, // 46: crabs.evening_detective_server.EveningDetectiveServer.Login:output_type -> crabs.evening_detective_server.LoginRsp + 11, // 47: crabs.evening_detective_server.EveningDetectiveServer.Refresh:output_type -> crabs.evening_detective_server.RefreshRsp + 13, // 48: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:output_type -> crabs.evening_detective_server.GetUsersRsp + 16, // 49: crabs.evening_detective_server.EveningDetectiveServer.GetUserById:output_type -> crabs.evening_detective_server.GetUserByIdRsp + 18, // 50: crabs.evening_detective_server.EveningDetectiveServer.GetMe:output_type -> crabs.evening_detective_server.GetMeRsp + 20, // 51: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:output_type -> crabs.evening_detective_server.AddUserRoleRsp + 22, // 52: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:output_type -> crabs.evening_detective_server.DeleteUserRoleRsp + 24, // 53: crabs.evening_detective_server.EveningDetectiveServer.GetPermissions:output_type -> crabs.evening_detective_server.GetPermissionsRsp + 26, // 54: crabs.evening_detective_server.EveningDetectiveServer.UploadFile:output_type -> crabs.evening_detective_server.UploadFileRsp + 55, // 55: crabs.evening_detective_server.EveningDetectiveServer.DownloadFile:output_type -> google.api.HttpBody + 29, // 56: crabs.evening_detective_server.EveningDetectiveServer.AddScenario:output_type -> crabs.evening_detective_server.AddScenarioRsp + 31, // 57: crabs.evening_detective_server.EveningDetectiveServer.GetMyScenarios:output_type -> crabs.evening_detective_server.GetMyScenariosRsp + 33, // 58: crabs.evening_detective_server.EveningDetectiveServer.GetScenario:output_type -> crabs.evening_detective_server.GetScenarioRsp + 41, // 59: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenario:output_type -> crabs.evening_detective_server.UpdateScenarioRsp + 43, // 60: crabs.evening_detective_server.EveningDetectiveServer.PublicScenario:output_type -> crabs.evening_detective_server.PublicScenarioRsp + 45, // 61: crabs.evening_detective_server.EveningDetectiveServer.DraftScenario:output_type -> crabs.evening_detective_server.DraftScenarioRsp + 47, // 62: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenario:output_type -> crabs.evening_detective_server.DeleteScenarioRsp + 49, // 63: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioPlace:output_type -> crabs.evening_detective_server.AddScenarioPlaceRsp + 51, // 64: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioPlace:output_type -> crabs.evening_detective_server.UpdateScenarioPlaceRsp + 53, // 65: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioPlace:output_type -> crabs.evening_detective_server.DeleteScenarioPlaceRsp + 42, // [42:66] is the sub-list for method output_type + 18, // [18:42] is the sub-list for method input_type 18, // [18:18] is the sub-list for extension type_name 18, // [18:18] is the sub-list for extension extendee 0, // [0:18] is the sub-list for field type_name @@ -2924,7 +3120,7 @@ func file_main_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_main_proto_rawDesc), len(file_main_proto_rawDesc)), NumEnums: 0, - NumMessages: 50, + NumMessages: 54, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/main.pb.gw.go b/proto/main.pb.gw.go index 6555e80..357b3c3 100644 --- a/proto/main.pb.gw.go +++ b/proto/main.pb.gw.go @@ -589,6 +589,96 @@ func local_request_EveningDetectiveServer_UpdateScenario_0(ctx context.Context, return msg, metadata, err } +func request_EveningDetectiveServer_PublicScenario_0(ctx context.Context, marshaler runtime.Marshaler, client EveningDetectiveServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq PublicScenarioReq + metadata runtime.ServerMetadata + err error + ) + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } + val, ok := pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + protoReq.Id, err = runtime.Int32(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + msg, err := client.PublicScenario(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err +} + +func local_request_EveningDetectiveServer_PublicScenario_0(ctx context.Context, marshaler runtime.Marshaler, server EveningDetectiveServerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq PublicScenarioReq + metadata runtime.ServerMetadata + err error + ) + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + val, ok := pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + protoReq.Id, err = runtime.Int32(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + msg, err := server.PublicScenario(ctx, &protoReq) + return msg, metadata, err +} + +func request_EveningDetectiveServer_DraftScenario_0(ctx context.Context, marshaler runtime.Marshaler, client EveningDetectiveServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq DraftScenarioReq + metadata runtime.ServerMetadata + err error + ) + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } + val, ok := pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + protoReq.Id, err = runtime.Int32(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + msg, err := client.DraftScenario(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err +} + +func local_request_EveningDetectiveServer_DraftScenario_0(ctx context.Context, marshaler runtime.Marshaler, server EveningDetectiveServerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq DraftScenarioReq + metadata runtime.ServerMetadata + err error + ) + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + val, ok := pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + protoReq.Id, err = runtime.Int32(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + msg, err := server.DraftScenario(ctx, &protoReq) + return msg, metadata, err +} + func request_EveningDetectiveServer_DeleteScenario_0(ctx context.Context, marshaler runtime.Marshaler, client EveningDetectiveServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var ( protoReq DeleteScenarioReq @@ -1155,6 +1245,46 @@ func RegisterEveningDetectiveServerHandlerServer(ctx context.Context, mux *runti } forward_EveningDetectiveServer_UpdateScenario_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) + mux.Handle(http.MethodPut, pattern_EveningDetectiveServer_PublicScenario_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/crabs.evening_detective_server.EveningDetectiveServer/PublicScenario", runtime.WithHTTPPathPattern("/api/scenarios/{id}/public")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EveningDetectiveServer_PublicScenario_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + forward_EveningDetectiveServer_PublicScenario_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodPut, pattern_EveningDetectiveServer_DraftScenario_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/crabs.evening_detective_server.EveningDetectiveServer/DraftScenario", runtime.WithHTTPPathPattern("/api/scenarios/{id}/draft")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EveningDetectiveServer_DraftScenario_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + forward_EveningDetectiveServer_DraftScenario_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) mux.Handle(http.MethodDelete, pattern_EveningDetectiveServer_DeleteScenario_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1581,6 +1711,40 @@ func RegisterEveningDetectiveServerHandlerClient(ctx context.Context, mux *runti } forward_EveningDetectiveServer_UpdateScenario_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) + mux.Handle(http.MethodPut, pattern_EveningDetectiveServer_PublicScenario_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/crabs.evening_detective_server.EveningDetectiveServer/PublicScenario", runtime.WithHTTPPathPattern("/api/scenarios/{id}/public")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EveningDetectiveServer_PublicScenario_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + forward_EveningDetectiveServer_PublicScenario_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodPut, pattern_EveningDetectiveServer_DraftScenario_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/crabs.evening_detective_server.EveningDetectiveServer/DraftScenario", runtime.WithHTTPPathPattern("/api/scenarios/{id}/draft")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EveningDetectiveServer_DraftScenario_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + forward_EveningDetectiveServer_DraftScenario_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) mux.Handle(http.MethodDelete, pattern_EveningDetectiveServer_DeleteScenario_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1671,6 +1835,8 @@ var ( pattern_EveningDetectiveServer_GetMyScenarios_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"api", "my-scenarios"}, "")) pattern_EveningDetectiveServer_GetScenario_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2}, []string{"api", "scenarios", "id"}, "")) pattern_EveningDetectiveServer_UpdateScenario_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2}, []string{"api", "scenarios", "id"}, "")) + pattern_EveningDetectiveServer_PublicScenario_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"api", "scenarios", "id", "public"}, "")) + pattern_EveningDetectiveServer_DraftScenario_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"api", "scenarios", "id", "draft"}, "")) pattern_EveningDetectiveServer_DeleteScenario_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2}, []string{"api", "scenarios", "id"}, "")) pattern_EveningDetectiveServer_AddScenarioPlace_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"api", "scenarios", "id", "places"}, "")) pattern_EveningDetectiveServer_UpdateScenarioPlace_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "scenarios", "id", "places", "code"}, "")) @@ -1696,6 +1862,8 @@ var ( forward_EveningDetectiveServer_GetMyScenarios_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_GetScenario_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_UpdateScenario_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_PublicScenario_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_DraftScenario_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_DeleteScenario_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_AddScenarioPlace_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_UpdateScenarioPlace_0 = runtime.ForwardResponseMessage diff --git a/proto/main_grpc.pb.go b/proto/main_grpc.pb.go index 0d7862f..94b0040 100644 --- a/proto/main_grpc.pb.go +++ b/proto/main_grpc.pb.go @@ -38,6 +38,8 @@ const ( EveningDetectiveServer_GetMyScenarios_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/GetMyScenarios" EveningDetectiveServer_GetScenario_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/GetScenario" EveningDetectiveServer_UpdateScenario_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/UpdateScenario" + EveningDetectiveServer_PublicScenario_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/PublicScenario" + EveningDetectiveServer_DraftScenario_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/DraftScenario" EveningDetectiveServer_DeleteScenario_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/DeleteScenario" EveningDetectiveServer_AddScenarioPlace_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/AddScenarioPlace" EveningDetectiveServer_UpdateScenarioPlace_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/UpdateScenarioPlace" @@ -66,6 +68,8 @@ type EveningDetectiveServerClient interface { GetMyScenarios(ctx context.Context, in *GetMyScenariosReq, opts ...grpc.CallOption) (*GetMyScenariosRsp, error) GetScenario(ctx context.Context, in *GetScenarioReq, opts ...grpc.CallOption) (*GetScenarioRsp, error) UpdateScenario(ctx context.Context, in *UpdateScenarioReq, opts ...grpc.CallOption) (*UpdateScenarioRsp, error) + PublicScenario(ctx context.Context, in *PublicScenarioReq, opts ...grpc.CallOption) (*PublicScenarioRsp, error) + DraftScenario(ctx context.Context, in *DraftScenarioReq, opts ...grpc.CallOption) (*DraftScenarioRsp, error) DeleteScenario(ctx context.Context, in *DeleteScenarioReq, opts ...grpc.CallOption) (*DeleteScenarioRsp, error) AddScenarioPlace(ctx context.Context, in *AddScenarioPlaceReq, opts ...grpc.CallOption) (*AddScenarioPlaceRsp, error) UpdateScenarioPlace(ctx context.Context, in *UpdateScenarioPlaceReq, opts ...grpc.CallOption) (*UpdateScenarioPlaceRsp, error) @@ -260,6 +264,26 @@ func (c *eveningDetectiveServerClient) UpdateScenario(ctx context.Context, in *U return out, nil } +func (c *eveningDetectiveServerClient) PublicScenario(ctx context.Context, in *PublicScenarioReq, opts ...grpc.CallOption) (*PublicScenarioRsp, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(PublicScenarioRsp) + err := c.cc.Invoke(ctx, EveningDetectiveServer_PublicScenario_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eveningDetectiveServerClient) DraftScenario(ctx context.Context, in *DraftScenarioReq, opts ...grpc.CallOption) (*DraftScenarioRsp, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(DraftScenarioRsp) + err := c.cc.Invoke(ctx, EveningDetectiveServer_DraftScenario_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *eveningDetectiveServerClient) DeleteScenario(ctx context.Context, in *DeleteScenarioReq, opts ...grpc.CallOption) (*DeleteScenarioRsp, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(DeleteScenarioRsp) @@ -322,6 +346,8 @@ type EveningDetectiveServerServer interface { GetMyScenarios(context.Context, *GetMyScenariosReq) (*GetMyScenariosRsp, error) GetScenario(context.Context, *GetScenarioReq) (*GetScenarioRsp, error) UpdateScenario(context.Context, *UpdateScenarioReq) (*UpdateScenarioRsp, error) + PublicScenario(context.Context, *PublicScenarioReq) (*PublicScenarioRsp, error) + DraftScenario(context.Context, *DraftScenarioReq) (*DraftScenarioRsp, error) DeleteScenario(context.Context, *DeleteScenarioReq) (*DeleteScenarioRsp, error) AddScenarioPlace(context.Context, *AddScenarioPlaceReq) (*AddScenarioPlaceRsp, error) UpdateScenarioPlace(context.Context, *UpdateScenarioPlaceReq) (*UpdateScenarioPlaceRsp, error) @@ -390,6 +416,12 @@ func (UnimplementedEveningDetectiveServerServer) GetScenario(context.Context, *G func (UnimplementedEveningDetectiveServerServer) UpdateScenario(context.Context, *UpdateScenarioReq) (*UpdateScenarioRsp, error) { return nil, status.Error(codes.Unimplemented, "method UpdateScenario not implemented") } +func (UnimplementedEveningDetectiveServerServer) PublicScenario(context.Context, *PublicScenarioReq) (*PublicScenarioRsp, error) { + return nil, status.Error(codes.Unimplemented, "method PublicScenario not implemented") +} +func (UnimplementedEveningDetectiveServerServer) DraftScenario(context.Context, *DraftScenarioReq) (*DraftScenarioRsp, error) { + return nil, status.Error(codes.Unimplemented, "method DraftScenario not implemented") +} func (UnimplementedEveningDetectiveServerServer) DeleteScenario(context.Context, *DeleteScenarioReq) (*DeleteScenarioRsp, error) { return nil, status.Error(codes.Unimplemented, "method DeleteScenario not implemented") } @@ -748,6 +780,42 @@ func _EveningDetectiveServer_UpdateScenario_Handler(srv interface{}, ctx context return interceptor(ctx, in, info, handler) } +func _EveningDetectiveServer_PublicScenario_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PublicScenarioReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EveningDetectiveServerServer).PublicScenario(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EveningDetectiveServer_PublicScenario_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EveningDetectiveServerServer).PublicScenario(ctx, req.(*PublicScenarioReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _EveningDetectiveServer_DraftScenario_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DraftScenarioReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EveningDetectiveServerServer).DraftScenario(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EveningDetectiveServer_DraftScenario_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EveningDetectiveServerServer).DraftScenario(ctx, req.(*DraftScenarioReq)) + } + return interceptor(ctx, in, info, handler) +} + func _EveningDetectiveServer_DeleteScenario_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(DeleteScenarioReq) if err := dec(in); err != nil { @@ -899,6 +967,14 @@ var EveningDetectiveServer_ServiceDesc = grpc.ServiceDesc{ MethodName: "UpdateScenario", Handler: _EveningDetectiveServer_UpdateScenario_Handler, }, + { + MethodName: "PublicScenario", + Handler: _EveningDetectiveServer_PublicScenario_Handler, + }, + { + MethodName: "DraftScenario", + Handler: _EveningDetectiveServer_DraftScenario_Handler, + }, { MethodName: "DeleteScenario", Handler: _EveningDetectiveServer_DeleteScenario_Handler,