diff --git a/api/main.proto b/api/main.proto index f48d8e4..2d1ad50 100644 --- a/api/main.proto +++ b/api/main.proto @@ -197,6 +197,90 @@ service EveningDetectiveServer { summary: "Получить файл"; }; } + + rpc AddScenario(AddScenarioReq) returns (AddScenarioRsp) { + option (google.api.http) = { + post: "/api/scenario" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + tags : "Сценарии"; + summary: "Создать сценарий"; + }; + } + + rpc GetMyScenarios(GetMyScenariosReq) returns (GetMyScenariosRsp) { + option (google.api.http) = { + get: "/api/my-scenarios" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + tags : "Сценарии"; + summary: "Получить свои сценарии"; + }; + } + + rpc GetScenario(GetScenarioReq) returns (GetScenarioRsp) { + option (google.api.http) = { + get: "/api/scenarios/{id}" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + tags : "Сценарии"; + summary: "Получить сценарий по id"; + }; + } + + rpc UpdateScenario(UpdateScenarioReq) returns (UpdateScenarioRsp) { + option (google.api.http) = { + put : "/api/scenarios/{id}" + 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}" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + tags : "Сценарии"; + summary: "Удалить сценарий"; + }; + } + + rpc AddScenarioPlace(AddScenarioPlaceReq) returns (AddScenarioPlaceRsp) { + option (google.api.http) = { + post: "/api/scenarios/places" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + tags : "Точки сценария"; + summary: "Создать точку сценария"; + }; + } + + rpc UpdateScenarioPlace(UpdateScenarioPlaceReq) returns (UpdateScenarioPlaceRsp) { + option (google.api.http) = { + put : "/api/scenarios/places/{code}" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + tags : "Точки сценария"; + summary: "Обновить точку сценария"; + }; + } + + rpc DeleteScenarioPlace(DeleteScenarioPlaceReq) returns (DeleteScenarioPlaceRsp) { + option (google.api.http) = { + delete: "/api/scenarios/places/{code}" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + tags : "Точки сценария"; + summary: "Удалить точку сценария"; + }; + } } message PingReq {} @@ -319,3 +403,114 @@ message UploadFileRsp { message DownloadFileReq { string filename = 1; } + +message AddScenarioReq { + string name = 1; +} + +message AddScenarioRsp { + string error = 1; + int32 id = 2; +} + +message GetMyScenariosReq {} + +message GetMyScenariosRsp { + string error = 1; + repeated Scenario scenarios = 2; +} + +message GetScenarioReq { + int32 id = 1; +} + +message GetScenarioRsp { + string error = 1; + Scenario scenario = 2; +} + +message Scenario { + int32 id = 1; + string name = 2; + optional string description = 3; + optional string image = 4; + Story story = 5; + User author = 6; + google.protobuf.Timestamp updated_at = 7; + google.protobuf.Timestamp created_at = 8; + google.protobuf.Timestamp published_at = 9; +} + +message Story { + repeated Place places = 1; +} + +message Place { + string code = 1; + string name = 2; + string text = 3; + string image = 4; + bool hidden = 5; + repeated Application applications = 6; + repeated Door doors = 7; + repeated Key keys = 8; +} + +message Application { + string name = 1; + string image = 2; +} + +message Door { + string code = 1; + string name = 2; + repeated Key keys = 3; +} + +message Key { + string name = 1; +} + +message UpdateScenarioReq { + int32 id = 1; + string name = 2; + string description = 3; + string image = 4; +} + +message UpdateScenarioRsp { + string error = 1; +} + +message DeleteScenarioReq { + int32 id = 1; +} + +message DeleteScenarioRsp { + string error = 1; +} + +message AddScenarioPlaceReq { + Place place = 1; +} + +message AddScenarioPlaceRsp { + string error = 1; +} + +message UpdateScenarioPlaceReq { + string code = 1; + Place place = 2; +} + +message UpdateScenarioPlaceRsp { + string error = 1; +} + +message DeleteScenarioPlaceReq { + string code = 1; +} + +message DeleteScenarioPlaceRsp { + string error = 1; +} \ No newline at end of file diff --git a/cmd/evening_detective_server/main.go b/cmd/evening_detective_server/main.go index 2b9a854..13ba376 100644 --- a/cmd/evening_detective_server/main.go +++ b/cmd/evening_detective_server/main.go @@ -9,8 +9,10 @@ import ( "evening_detective_server/internal/modules/password_generator" "evening_detective_server/internal/modules/processor_jwt" "evening_detective_server/internal/repos/refresh_tokens_repo" + "evening_detective_server/internal/repos/scenarios_repo" "evening_detective_server/internal/repos/users_repo" "evening_detective_server/internal/services/file_service" + "evening_detective_server/internal/services/scenarios_service" "evening_detective_server/internal/services/ui_service" "evening_detective_server/internal/services/users_service" proto "evening_detective_server/proto" @@ -69,6 +71,8 @@ func main() { log.Fatalf("Unable to create connection rustfs: %v\n", err) } fileService := file_service.NewFileService(fileStorage) + scenariosRepo := scenarios_repo.NewScenariosRepo(dbpool) + scenarioService := scenarios_service.NewScenarioService(scenariosRepo) // Create a listener on TCP port lis, err := net.Listen("tcp", ":8080") @@ -100,6 +104,7 @@ func main() { usersService, uiService, fileService, + scenarioService, ), ) // Serve gRPC server diff --git a/cmd/evening_detective_server/main.swagger.json b/cmd/evening_detective_server/main.swagger.json index 50c0527..d286135 100644 --- a/cmd/evening_detective_server/main.swagger.json +++ b/cmd/evening_detective_server/main.swagger.json @@ -232,6 +232,263 @@ ] } }, + "/api/my-scenarios": { + "get": { + "summary": "Получить свои сценарии", + "operationId": "EveningDetectiveServer_GetMyScenarios", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/evening_detective_serverGetMyScenariosRsp" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "tags": [ + "Сценарии" + ] + } + }, + "/api/scenario": { + "post": { + "summary": "Создать сценарий", + "operationId": "EveningDetectiveServer_AddScenario", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/evening_detective_serverAddScenarioRsp" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/evening_detective_serverAddScenarioReq" + } + } + ], + "tags": [ + "Сценарии" + ] + } + }, + "/api/scenarios/places": { + "post": { + "summary": "Создать точку сценария", + "operationId": "EveningDetectiveServer_AddScenarioPlace", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/evening_detective_serverAddScenarioPlaceRsp" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/evening_detective_serverAddScenarioPlaceReq" + } + } + ], + "tags": [ + "Точки сценария" + ] + } + }, + "/api/scenarios/places/{code}": { + "delete": { + "summary": "Удалить точку сценария", + "operationId": "EveningDetectiveServer_DeleteScenarioPlace", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/evening_detective_serverDeleteScenarioPlaceRsp" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "code", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "Точки сценария" + ] + }, + "put": { + "summary": "Обновить точку сценария", + "operationId": "EveningDetectiveServer_UpdateScenarioPlace", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/evening_detective_serverUpdateScenarioPlaceRsp" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "code", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/EveningDetectiveServerUpdateScenarioPlaceBody" + } + } + ], + "tags": [ + "Точки сценария" + ] + } + }, + "/api/scenarios/{id}": { + "get": { + "summary": "Получить сценарий по id", + "operationId": "EveningDetectiveServer_GetScenario", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/evening_detective_serverGetScenarioRsp" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "integer", + "format": "int32" + } + ], + "tags": [ + "Сценарии" + ] + }, + "delete": { + "summary": "Удалить сценарий", + "operationId": "EveningDetectiveServer_DeleteScenario", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/evening_detective_serverDeleteScenarioRsp" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "integer", + "format": "int32" + } + ], + "tags": [ + "Сценарии" + ] + }, + "put": { + "summary": "Редактировать сценарий", + "operationId": "EveningDetectiveServer_UpdateScenario", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/evening_detective_serverUpdateScenarioRsp" + } + }, + "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/EveningDetectiveServerUpdateScenarioBody" + } + } + ], + "tags": [ + "Сценарии" + ] + } + }, "/api/test/echo": { "post": { "summary": "Проверить обработку данных", @@ -495,6 +752,28 @@ } } }, + "EveningDetectiveServerUpdateScenarioBody": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "image": { + "type": "string" + } + } + }, + "EveningDetectiveServerUpdateScenarioPlaceBody": { + "type": "object", + "properties": { + "place": { + "$ref": "#/definitions/evening_detective_serverPlace" + } + } + }, "apiHttpBody": { "type": "object", "properties": { @@ -518,6 +797,42 @@ }, "description": "Message that represents an arbitrary HTTP body. It should only be used for\npayload formats that can't be represented as JSON, such as raw binary or\nan HTML page.\n\n\nThis message can be used both in streaming and non-streaming API methods in\nthe request as well as the response.\n\nIt can be used as a top-level request field, which is convenient if one\nwants to extract parameters from either the URL or HTTP template into the\nrequest fields and also want access to the raw HTTP body.\n\nExample:\n\n message GetResourceRequest {\n // A unique request id.\n string request_id = 1;\n\n // The raw HTTP body is bound to this field.\n google.api.HttpBody http_body = 2;\n\n }\n\n service ResourceService {\n rpc GetResource(GetResourceRequest)\n returns (google.api.HttpBody);\n rpc UpdateResource(google.api.HttpBody)\n returns (google.protobuf.Empty);\n\n }\n\nExample with streaming methods:\n\n service CaldavService {\n rpc GetCalendar(stream google.api.HttpBody)\n returns (stream google.api.HttpBody);\n rpc UpdateCalendar(stream google.api.HttpBody)\n returns (stream google.api.HttpBody);\n\n }\n\nUse of this type only changes how the request and response bodies are\nhandled, all other features will continue to work unchanged." }, + "evening_detective_serverAddScenarioPlaceReq": { + "type": "object", + "properties": { + "place": { + "$ref": "#/definitions/evening_detective_serverPlace" + } + } + }, + "evening_detective_serverAddScenarioPlaceRsp": { + "type": "object", + "properties": { + "error": { + "type": "string" + } + } + }, + "evening_detective_serverAddScenarioReq": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + } + }, + "evening_detective_serverAddScenarioRsp": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "id": { + "type": "integer", + "format": "int32" + } + } + }, "evening_detective_serverAddUserRoleRsp": { "type": "object", "properties": { @@ -526,6 +841,33 @@ } } }, + "evening_detective_serverApplication": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "image": { + "type": "string" + } + } + }, + "evening_detective_serverDeleteScenarioPlaceRsp": { + "type": "object", + "properties": { + "error": { + "type": "string" + } + } + }, + "evening_detective_serverDeleteScenarioRsp": { + "type": "object", + "properties": { + "error": { + "type": "string" + } + } + }, "evening_detective_serverDeleteUserRoleRsp": { "type": "object", "properties": { @@ -534,6 +876,24 @@ } } }, + "evening_detective_serverDoor": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "name": { + "type": "string" + }, + "keys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/evening_detective_serverKey" + } + } + } + }, "evening_detective_serverEchoRsp": { "type": "object", "properties": { @@ -553,6 +913,21 @@ } } }, + "evening_detective_serverGetMyScenariosRsp": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "scenarios": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/evening_detective_serverScenario" + } + } + } + }, "evening_detective_serverGetPermissionsRsp": { "type": "object", "properties": { @@ -567,6 +942,17 @@ } } }, + "evening_detective_serverGetScenarioRsp": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "scenario": { + "$ref": "#/definitions/evening_detective_serverScenario" + } + } + }, "evening_detective_serverGetUserByIdRsp": { "type": "object", "properties": { @@ -593,6 +979,14 @@ } } }, + "evening_detective_serverKey": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + } + }, "evening_detective_serverLoginReq": { "type": "object", "properties": { @@ -621,6 +1015,47 @@ "evening_detective_serverPingRsp": { "type": "object" }, + "evening_detective_serverPlace": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "name": { + "type": "string" + }, + "text": { + "type": "string" + }, + "image": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "applications": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/evening_detective_serverApplication" + } + }, + "doors": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/evening_detective_serverDoor" + } + }, + "keys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/evening_detective_serverKey" + } + } + } + }, "evening_detective_serverRefreshPasswordReq": { "type": "object", "properties": { @@ -659,6 +1094,42 @@ } } }, + "evening_detective_serverScenario": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "image": { + "type": "string" + }, + "story": { + "$ref": "#/definitions/evening_detective_serverStory" + }, + "author": { + "$ref": "#/definitions/evening_detective_serverUser" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "publishedAt": { + "type": "string", + "format": "date-time" + } + } + }, "evening_detective_serverSignupReq": { "type": "object", "properties": { @@ -678,6 +1149,34 @@ } } }, + "evening_detective_serverStory": { + "type": "object", + "properties": { + "places": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/evening_detective_serverPlace" + } + } + } + }, + "evening_detective_serverUpdateScenarioPlaceRsp": { + "type": "object", + "properties": { + "error": { + "type": "string" + } + } + }, + "evening_detective_serverUpdateScenarioRsp": { + "type": "object", + "properties": { + "error": { + "type": "string" + } + } + }, "evening_detective_serverUploadFileReq": { "type": "object", "properties": { diff --git a/internal/app/server.go b/internal/app/server.go index 5579bf1..1b1ae92 100644 --- a/internal/app/server.go +++ b/internal/app/server.go @@ -6,6 +6,7 @@ import ( "evening_detective_server/internal/modules/processor_jwt" "evening_detective_server/internal/modules/roles" "evening_detective_server/internal/services/file_service" + "evening_detective_server/internal/services/scenarios_service" "evening_detective_server/internal/services/ui_service" "evening_detective_server/internal/services/users_service" proto "evening_detective_server/proto" @@ -18,20 +19,23 @@ import ( type server struct { proto.UnsafeEveningDetectiveServerServer - usersService *users_service.UsersService - uiService *ui_service.UiService - fileService *file_service.FileService + usersService *users_service.UsersService + uiService *ui_service.UiService + fileService *file_service.FileService + scenarioService *scenarios_service.ScenarioService } func NewServer( usersService *users_service.UsersService, uiService *ui_service.UiService, fileService *file_service.FileService, + scenarioService *scenarios_service.ScenarioService, ) proto.EveningDetectiveServerServer { return &server{ - usersService: usersService, - uiService: uiService, - fileService: fileService, + usersService: usersService, + uiService: uiService, + fileService: fileService, + scenarioService: scenarioService, } } @@ -202,3 +206,124 @@ func (s *server) DownloadFile(ctx context.Context, req *proto.DownloadFileReq) ( ContentType: file.Mime, }, nil } + +func (s *server) AddScenario(ctx context.Context, req *proto.AddScenarioReq) (*proto.AddScenarioRsp, error) { + claims := ctx.Value("claims").(*processor_jwt.JWTClaims) + if !roles.HasRole(claims, roles.Author) { + return nil, status.Errorf(codes.PermissionDenied, "permission denied") + } + + id, err := s.scenarioService.AddScenario(ctx, req.Name, claims.UserID) + if err != nil { + return &proto.AddScenarioRsp{ + Error: err.Error(), + }, nil + } + return &proto.AddScenarioRsp{ + Id: int32(id), + }, nil +} + +func (s *server) GetMyScenarios(ctx context.Context, req *proto.GetMyScenariosReq) (*proto.GetMyScenariosRsp, error) { + claims := ctx.Value("claims").(*processor_jwt.JWTClaims) + if !roles.HasRole(claims, roles.Author) { + return nil, status.Errorf(codes.PermissionDenied, "permission denied") + } + + scenarios, err := s.scenarioService.GetScenariosByAuthorID(ctx, claims.UserID) + if err != nil { + return &proto.GetMyScenariosRsp{ + Error: err.Error(), + }, nil + } + + return &proto.GetMyScenariosRsp{ + Scenarios: mapScenarios(scenarios), + }, nil +} + +func (s *server) GetScenario(ctx context.Context, req *proto.GetScenarioReq) (*proto.GetScenarioRsp, error) { + claims := ctx.Value("claims").(*processor_jwt.JWTClaims) + if !roles.HasRole(claims, roles.Author) { + return nil, status.Errorf(codes.PermissionDenied, "permission denied") + } + + scenario, err := s.scenarioService.GetScenarioByID(ctx, int(req.Id)) + if err != nil { + return &proto.GetScenarioRsp{ + Error: err.Error(), + }, nil + } + + return &proto.GetScenarioRsp{ + Scenario: mapScenario(scenario), + }, nil +} + +func (s *server) UpdateScenario(ctx context.Context, req *proto.UpdateScenarioReq) (*proto.UpdateScenarioRsp, 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.UpdateScenarioByID( + ctx, + int(req.Id), + req.Name, + req.Description, + req.Image, + ) + if err != nil { + return &proto.UpdateScenarioRsp{ + Error: err.Error(), + }, nil + } + + return &proto.UpdateScenarioRsp{}, 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) { + return nil, status.Errorf(codes.PermissionDenied, "permission denied") + } + + err := s.scenarioService.DeleteScenarioByID( + ctx, + int(req.Id), + ) + if err != nil { + return &proto.DeleteScenarioRsp{ + Error: err.Error(), + }, nil + } + + return &proto.DeleteScenarioRsp{}, nil +} + +func (s *server) AddScenarioPlace(ctx context.Context, req *proto.AddScenarioPlaceReq) (*proto.AddScenarioPlaceRsp, error) { + claims := ctx.Value("claims").(*processor_jwt.JWTClaims) + if !roles.HasRole(claims, roles.Author) { + return nil, status.Errorf(codes.PermissionDenied, "permission denied") + } + + panic("unimplemented") +} + +func (s *server) UpdateScenarioPlace(ctx context.Context, req *proto.UpdateScenarioPlaceReq) (*proto.UpdateScenarioPlaceRsp, error) { + claims := ctx.Value("claims").(*processor_jwt.JWTClaims) + if !roles.HasRole(claims, roles.Author) { + return nil, status.Errorf(codes.PermissionDenied, "permission denied") + } + + panic("unimplemented") +} + +func (s *server) DeleteScenarioPlace(ctx context.Context, req *proto.DeleteScenarioPlaceReq) (*proto.DeleteScenarioPlaceRsp, error) { + claims := ctx.Value("claims").(*processor_jwt.JWTClaims) + if !roles.HasRole(claims, roles.Author) { + return nil, status.Errorf(codes.PermissionDenied, "permission denied") + } + + panic("unimplemented") +} diff --git a/internal/app/story_mapper.go b/internal/app/story_mapper.go new file mode 100644 index 0000000..6846d3a --- /dev/null +++ b/internal/app/story_mapper.go @@ -0,0 +1,107 @@ +package app + +import ( + "evening_detective_server/internal/modules/storytelling" + "evening_detective_server/internal/services/scenarios_service" + proto "evening_detective_server/proto" + + "google.golang.org/protobuf/types/known/timestamppb" +) + +func mapScenarios(o []*scenarios_service.Scenario) []*proto.Scenario { + res := make([]*proto.Scenario, 0, len(o)) + for _, item := range o { + res = append(res, mapScenario(item)) + } + return res +} + +func mapScenario(o *scenarios_service.Scenario) *proto.Scenario { + var publishedAt *timestamppb.Timestamp + if o.PublishedAt != nil { + publishedAt = timestamppb.New(*o.PublishedAt) + } + return &proto.Scenario{ + Id: int32(o.ID), + Name: o.Name, + Description: o.Description, + Image: o.Image, + Story: mapStory(o.Story), + Author: mapUser(o.Author), + UpdatedAt: timestamppb.New(o.UpdatedAt), + CreatedAt: timestamppb.New(o.CreatedAt), + PublishedAt: publishedAt, + } +} + +func mapStory(o *storytelling.Story) *proto.Story { + return &proto.Story{ + Places: mapPlaces(o.Places), + } +} + +func mapPlaces(o []*storytelling.Place) []*proto.Place { + res := make([]*proto.Place, 0, len(o)) + for _, item := range o { + res = append(res, mapPlace(item)) + } + return res +} + +func mapPlace(o *storytelling.Place) *proto.Place { + return &proto.Place{ + Code: o.Code, + Name: o.Name, + Text: o.Text, + Image: o.Image, + Hidden: o.Hidden, + Applications: mapApplications(o.Applications), + Doors: mapDoors(o.Doors), + Keys: mapKeys(o.Keys), + } +} + +func mapApplications(o []*storytelling.Application) []*proto.Application { + res := make([]*proto.Application, 0, len(o)) + for _, item := range o { + res = append(res, mapApplication(item)) + } + return res +} + +func mapDoors(o []*storytelling.Door) []*proto.Door { + res := make([]*proto.Door, 0, len(o)) + for _, item := range o { + res = append(res, mapDoor(item)) + } + return res +} + +func mapKeys(o []*storytelling.Key) []*proto.Key { + res := make([]*proto.Key, 0, len(o)) + for _, item := range o { + res = append(res, mapKey(item)) + } + return res +} + +func mapApplication(o *storytelling.Application) *proto.Application { + return &proto.Application{ + Name: o.Name, + Image: o.Image, + } +} + +func mapDoor(o *storytelling.Door) *proto.Door { + return &proto.Door{ + Code: o.Code, + Name: o.Name, + Keys: mapKeys(o.Keys), + } +} + +func mapKey(o *storytelling.Key) *proto.Key { + return &proto.Key{ + Name: o.Name, + } +} diff --git a/internal/repos/scenario.go b/internal/repos/scenario.go new file mode 100644 index 0000000..8025e15 --- /dev/null +++ b/internal/repos/scenario.go @@ -0,0 +1,17 @@ +package repos + +import "time" + +type Scenario struct { + ID int + Name string + Description *string + Image *string + Scenario string + Author *User + Status string + UpdatedAt time.Time + CreatedAt time.Time + PublishedAt *time.Time + IsDeleted bool +} diff --git a/internal/repos/scenarios_repo/repo.go b/internal/repos/scenarios_repo/repo.go new file mode 100644 index 0000000..975d848 --- /dev/null +++ b/internal/repos/scenarios_repo/repo.go @@ -0,0 +1,206 @@ +package scenarios_repo + +import ( + "context" + "errors" + "evening_detective_server/internal/repos" + + "github.com/jackc/pgx/v5" + "github.com/jackc/pgx/v5/pgxpool" +) + +var ( + ErrScenarioNotFound = errors.New("Сценарий не найден") +) + +type ScenariosRepo struct { + pool *pgxpool.Pool +} + +func NewScenariosRepo(pool *pgxpool.Pool) *ScenariosRepo { + return &ScenariosRepo{ + pool: pool, + } +} + +func (s *ScenariosRepo) AddScenario( + ctx context.Context, + name string, + authorId int, +) (int, error) { + id := 0 + err := s.pool.QueryRow( + ctx, + `INSERT INTO scenarios (name, author_id) + VALUES ($1, $2) + RETURNING id`, + name, + authorId, + ).Scan(&id) + + if err != nil { + return 0, err + } + return id, nil +} + +func (s *ScenariosRepo) GetScenariosByAuthorID( + ctx context.Context, + authorId int, +) ([]*repos.Scenario, error) { + rows, err := s.pool.Query( + ctx, + `SELECT + scenarios.id, + scenarios.name, + scenarios.description, + scenarios.image, + scenarios.scenario, + users.id, + users.username, + scenarios.status, + scenarios.updated_at, + scenarios.created_at, + scenarios.published_at + FROM scenarios + LEFT JOIN users on scenarios.author_id = users.id + WHERE scenarios.author_id = $1 and is_deleted = FALSE + ORDER BY created_at DESC`, + authorId, + ) + if err != nil { + return nil, err + } + defer rows.Close() + + var scenarios []*repos.Scenario + for rows.Next() { + scenario := &repos.Scenario{ + Author: &repos.User{}, + } + err := rows.Scan( + &scenario.ID, + &scenario.Name, + &scenario.Description, + &scenario.Image, + &scenario.Scenario, + &scenario.Author.ID, + &scenario.Author.Username, + &scenario.Status, + &scenario.UpdatedAt, + &scenario.CreatedAt, + &scenario.PublishedAt, + ) + if err != nil { + return nil, err + } + scenarios = append(scenarios, scenario) + } + if err := rows.Err(); err != nil { + return nil, err + } + + return scenarios, nil +} + +func (s *ScenariosRepo) GetScenarioByID( + ctx context.Context, + id int, +) (*repos.Scenario, error) { + scenario := &repos.Scenario{ + Author: &repos.User{}, + } + row := s.pool.QueryRow( + ctx, + `SELECT + scenarios.id, + scenarios.name, + scenarios.description, + scenarios.image, + scenarios.scenario, + users.id, + users.username, + scenarios.status, + scenarios.updated_at, + scenarios.created_at, + scenarios.published_at, + scenarios.is_deleted + FROM scenarios + LEFT JOIN users on scenarios.author_id = users.id + WHERE scenarios.id = $1`, + id, + ) + err := row.Scan( + &scenario.ID, + &scenario.Name, + &scenario.Description, + &scenario.Image, + &scenario.Scenario, + &scenario.Author.ID, + &scenario.Author.Username, + &scenario.Status, + &scenario.UpdatedAt, + &scenario.CreatedAt, + &scenario.PublishedAt, + &scenario.IsDeleted, + ) + if err != nil { + if errors.Is(err, pgx.ErrNoRows) { + return nil, ErrScenarioNotFound + } + return nil, err + } + + return scenario, nil +} + +func (s *ScenariosRepo) UpdateScenarioByID( + ctx context.Context, + id int, + name string, + description string, + image string, +) error { + tag, err := s.pool.Exec( + ctx, + `UPDATE scenarios + SET + name = $1, + description = $2, + image = $3, + updated_at = NOW() + WHERE id = $4`, + name, + description, + image, + id, + ) + if err != nil { + return err + } + if tag.RowsAffected() == 0 { + return ErrScenarioNotFound + } + return nil +} + +func (s *ScenariosRepo) DeleteScenarioByID( + ctx context.Context, + id int, +) error { + tag, err := s.pool.Exec( + ctx, + `UPDATE scenarios + SET + is_deleted = TRUE + WHERE id = $1`, + id, + ) + if err != nil { + return err + } + if tag.RowsAffected() == 0 { + return ErrScenarioNotFound + } + return nil +} diff --git a/internal/repos/users_repo/repo.go b/internal/repos/users_repo/repo.go index d1eba12..cc64048 100644 --- a/internal/repos/users_repo/repo.go +++ b/internal/repos/users_repo/repo.go @@ -169,7 +169,6 @@ func (s *UsersRepo) GetUsers( } users = append(users, user) } - if err := rows.Err(); err != nil { return nil, err } diff --git a/internal/services/scenarios_service/scenario.go b/internal/services/scenarios_service/scenario.go new file mode 100644 index 0000000..aba52e8 --- /dev/null +++ b/internal/services/scenarios_service/scenario.go @@ -0,0 +1,21 @@ +package scenarios_service + +import ( + "evening_detective_server/internal/modules/storytelling" + "evening_detective_server/internal/repos" + "time" +) + +type Scenario struct { + ID int + Name string + Description *string + Image *string + Story *storytelling.Story + Author *repos.User + Status string + UpdatedAt time.Time + CreatedAt time.Time + PublishedAt *time.Time + IsDeleted bool +} diff --git a/internal/services/scenarios_service/scenario_mapper.go b/internal/services/scenarios_service/scenario_mapper.go new file mode 100644 index 0000000..a34952e --- /dev/null +++ b/internal/services/scenarios_service/scenario_mapper.go @@ -0,0 +1,39 @@ +package scenarios_service + +import ( + "encoding/json" + "evening_detective_server/internal/modules/storytelling" + "evening_detective_server/internal/repos" +) + +func mapScenarios(o []*repos.Scenario) ([]*Scenario, error) { + res := make([]*Scenario, 0, len(o)) + for _, item := range o { + scenario, err := mapScenario(item) + if err != nil { + return nil, err + } + res = append(res, scenario) + } + return res, nil +} + +func mapScenario(o *repos.Scenario) (*Scenario, error) { + story := &storytelling.Story{} + if err := json.Unmarshal([]byte(o.Scenario), story); err != nil { + return nil, err + } + return &Scenario{ + ID: o.ID, + Name: o.Name, + Description: o.Description, + Image: o.Image, + Story: story, + Author: o.Author, + Status: o.Status, + UpdatedAt: o.UpdatedAt, + CreatedAt: o.CreatedAt, + PublishedAt: o.PublishedAt, + IsDeleted: o.IsDeleted, + }, nil +} diff --git a/internal/services/scenarios_service/service.go b/internal/services/scenarios_service/service.go new file mode 100644 index 0000000..ead15ff --- /dev/null +++ b/internal/services/scenarios_service/service.go @@ -0,0 +1,69 @@ +package scenarios_service + +import ( + "context" + "evening_detective_server/internal/repos/scenarios_repo" +) + +type ScenarioService struct { + scenariosRepo *scenarios_repo.ScenariosRepo +} + +func NewScenarioService( + scenariosRepo *scenarios_repo.ScenariosRepo, +) *ScenarioService { + return &ScenarioService{ + scenariosRepo: scenariosRepo, + } +} + +func (s *ScenarioService) AddScenario( + ctx context.Context, + name string, + authorId int, +) (int, error) { + id, err := s.scenariosRepo.AddScenario(ctx, name, authorId) + if err != nil { + return 0, err + } + return id, nil +} + +func (s *ScenarioService) GetScenariosByAuthorID( + ctx context.Context, + authorId int, +) ([]*Scenario, error) { + scenarios, err := s.scenariosRepo.GetScenariosByAuthorID(ctx, authorId) + if err != nil { + return nil, err + } + return mapScenarios(scenarios) +} + +func (s *ScenarioService) GetScenarioByID( + ctx context.Context, + id int, +) (*Scenario, error) { + scenario, err := s.scenariosRepo.GetScenarioByID(ctx, id) + if err != nil { + return nil, err + } + return mapScenario(scenario) +} + +func (s *ScenarioService) UpdateScenarioByID( + ctx context.Context, + id int, + name string, + description string, + image string, +) error { + return s.scenariosRepo.UpdateScenarioByID(ctx, id, name, description, image) +} + +func (s *ScenarioService) DeleteScenarioByID( + ctx context.Context, + id int, +) error { + return s.scenariosRepo.DeleteScenarioByID(ctx, id) +} diff --git a/migrations/20260628175120_create_users_table.sql b/migrations/20260628175120_create_users_table.sql index 005cceb..d60bb52 100644 --- a/migrations/20260628175120_create_users_table.sql +++ b/migrations/20260628175120_create_users_table.sql @@ -5,7 +5,7 @@ CREATE TABLE username VARCHAR(50) NOT NULL UNIQUE, email VARCHAR(100) NOT NULL UNIQUE, password_hash VARCHAR(255) NOT NULL, - roles jsonb NOT NULL DEFAULT '[]'::jsonb, + roles JSONB NOT NULL DEFAULT '[]'::jsonb, is_active BOOLEAN DEFAULT TRUE, created_at TIMESTAMP NOT NULL DEFAULT NOW () ); diff --git a/migrations/20260704192907_refresh_tokens_table.sql b/migrations/20260704192907_refresh_tokens_table.sql index 1ee3e1c..59de007 100644 --- a/migrations/20260704192907_refresh_tokens_table.sql +++ b/migrations/20260704192907_refresh_tokens_table.sql @@ -6,6 +6,7 @@ CREATE TABLE expires_at TIMESTAMP NOT NULL, jti VARCHAR(255) NOT NULL UNIQUE, created_at TIMESTAMP NOT NULL DEFAULT NOW (), + CONSTRAINT fk_user FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE ); diff --git a/migrations/20260712154823_create_scenarios_table.sql b/migrations/20260712154823_create_scenarios_table.sql new file mode 100644 index 0000000..9527e6f --- /dev/null +++ b/migrations/20260712154823_create_scenarios_table.sql @@ -0,0 +1,20 @@ +-- +goose Up +CREATE TABLE + IF NOT EXISTS scenarios ( + id SERIAL PRIMARY KEY, + name VARCHAR(255) NOT NULL UNIQUE, + description TEXT, + image TEXT, + scenario JSONB NOT NULL DEFAULT '{}'::jsonb, + author_id INTEGER NOT NULL, + status VARCHAR(50) DEFAULT 'draft', + updated_at TIMESTAMP NOT NULL DEFAULT NOW (), + created_at TIMESTAMP NOT NULL DEFAULT NOW (), + published_at TIMESTAMP, + is_deleted BOOLEAN DEFAULT FALSE, + + CONSTRAINT fk_scenarios_author FOREIGN KEY (author_id) REFERENCES users (id) ON DELETE RESTRICT + ); + +-- +goose Down +DROP TABLE IF EXISTS scenarios; \ No newline at end of file diff --git a/proto/main.pb.go b/proto/main.pb.go index 0db87c4..fb34d5e 100644 --- a/proto/main.pb.go +++ b/proto/main.pb.go @@ -1369,6 +1369,1166 @@ func (x *DownloadFileReq) GetFilename() string { return "" } +type AddScenarioReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AddScenarioReq) Reset() { + *x = AddScenarioReq{} + mi := &file_main_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AddScenarioReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddScenarioReq) ProtoMessage() {} + +func (x *AddScenarioReq) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[28] + 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 AddScenarioReq.ProtoReflect.Descriptor instead. +func (*AddScenarioReq) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{28} +} + +func (x *AddScenarioReq) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type AddScenarioRsp struct { + state protoimpl.MessageState `protogen:"open.v1"` + Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` + Id int32 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AddScenarioRsp) Reset() { + *x = AddScenarioRsp{} + mi := &file_main_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AddScenarioRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddScenarioRsp) ProtoMessage() {} + +func (x *AddScenarioRsp) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[29] + 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 AddScenarioRsp.ProtoReflect.Descriptor instead. +func (*AddScenarioRsp) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{29} +} + +func (x *AddScenarioRsp) GetError() string { + if x != nil { + return x.Error + } + return "" +} + +func (x *AddScenarioRsp) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +type GetMyScenariosReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetMyScenariosReq) Reset() { + *x = GetMyScenariosReq{} + mi := &file_main_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetMyScenariosReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMyScenariosReq) ProtoMessage() {} + +func (x *GetMyScenariosReq) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[30] + 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 GetMyScenariosReq.ProtoReflect.Descriptor instead. +func (*GetMyScenariosReq) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{30} +} + +type GetMyScenariosRsp struct { + state protoimpl.MessageState `protogen:"open.v1"` + Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` + Scenarios []*Scenario `protobuf:"bytes,2,rep,name=scenarios,proto3" json:"scenarios,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetMyScenariosRsp) Reset() { + *x = GetMyScenariosRsp{} + mi := &file_main_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetMyScenariosRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMyScenariosRsp) ProtoMessage() {} + +func (x *GetMyScenariosRsp) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[31] + 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 GetMyScenariosRsp.ProtoReflect.Descriptor instead. +func (*GetMyScenariosRsp) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{31} +} + +func (x *GetMyScenariosRsp) GetError() string { + if x != nil { + return x.Error + } + return "" +} + +func (x *GetMyScenariosRsp) GetScenarios() []*Scenario { + if x != nil { + return x.Scenarios + } + return nil +} + +type GetScenarioReq 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 *GetScenarioReq) Reset() { + *x = GetScenarioReq{} + mi := &file_main_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetScenarioReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetScenarioReq) ProtoMessage() {} + +func (x *GetScenarioReq) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[32] + 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 GetScenarioReq.ProtoReflect.Descriptor instead. +func (*GetScenarioReq) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{32} +} + +func (x *GetScenarioReq) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +type GetScenarioRsp struct { + state protoimpl.MessageState `protogen:"open.v1"` + Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` + Scenario *Scenario `protobuf:"bytes,2,opt,name=scenario,proto3" json:"scenario,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetScenarioRsp) Reset() { + *x = GetScenarioRsp{} + mi := &file_main_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetScenarioRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetScenarioRsp) ProtoMessage() {} + +func (x *GetScenarioRsp) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[33] + 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 GetScenarioRsp.ProtoReflect.Descriptor instead. +func (*GetScenarioRsp) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{33} +} + +func (x *GetScenarioRsp) GetError() string { + if x != nil { + return x.Error + } + return "" +} + +func (x *GetScenarioRsp) GetScenario() *Scenario { + if x != nil { + return x.Scenario + } + return nil +} + +type Scenario struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Description *string `protobuf:"bytes,3,opt,name=description,proto3,oneof" json:"description,omitempty"` + Image *string `protobuf:"bytes,4,opt,name=image,proto3,oneof" json:"image,omitempty"` + Story *Story `protobuf:"bytes,5,opt,name=story,proto3" json:"story,omitempty"` + Author *User `protobuf:"bytes,6,opt,name=author,proto3" json:"author,omitempty"` + UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + PublishedAt *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=published_at,json=publishedAt,proto3" json:"published_at,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Scenario) Reset() { + *x = Scenario{} + mi := &file_main_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Scenario) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Scenario) ProtoMessage() {} + +func (x *Scenario) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[34] + 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 Scenario.ProtoReflect.Descriptor instead. +func (*Scenario) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{34} +} + +func (x *Scenario) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Scenario) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Scenario) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *Scenario) GetImage() string { + if x != nil && x.Image != nil { + return *x.Image + } + return "" +} + +func (x *Scenario) GetStory() *Story { + if x != nil { + return x.Story + } + return nil +} + +func (x *Scenario) GetAuthor() *User { + if x != nil { + return x.Author + } + return nil +} + +func (x *Scenario) GetUpdatedAt() *timestamppb.Timestamp { + if x != nil { + return x.UpdatedAt + } + return nil +} + +func (x *Scenario) GetCreatedAt() *timestamppb.Timestamp { + if x != nil { + return x.CreatedAt + } + return nil +} + +func (x *Scenario) GetPublishedAt() *timestamppb.Timestamp { + if x != nil { + return x.PublishedAt + } + return nil +} + +type Story struct { + state protoimpl.MessageState `protogen:"open.v1"` + Places []*Place `protobuf:"bytes,1,rep,name=places,proto3" json:"places,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Story) Reset() { + *x = Story{} + mi := &file_main_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Story) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Story) ProtoMessage() {} + +func (x *Story) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[35] + 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 Story.ProtoReflect.Descriptor instead. +func (*Story) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{35} +} + +func (x *Story) GetPlaces() []*Place { + if x != nil { + return x.Places + } + return nil +} + +type Place struct { + state protoimpl.MessageState `protogen:"open.v1"` + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Text string `protobuf:"bytes,3,opt,name=text,proto3" json:"text,omitempty"` + Image string `protobuf:"bytes,4,opt,name=image,proto3" json:"image,omitempty"` + Hidden bool `protobuf:"varint,5,opt,name=hidden,proto3" json:"hidden,omitempty"` + Applications []*Application `protobuf:"bytes,6,rep,name=applications,proto3" json:"applications,omitempty"` + Doors []*Door `protobuf:"bytes,7,rep,name=doors,proto3" json:"doors,omitempty"` + Keys []*Key `protobuf:"bytes,8,rep,name=keys,proto3" json:"keys,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Place) Reset() { + *x = Place{} + mi := &file_main_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Place) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Place) ProtoMessage() {} + +func (x *Place) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[36] + 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 Place.ProtoReflect.Descriptor instead. +func (*Place) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{36} +} + +func (x *Place) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *Place) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Place) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +func (x *Place) GetImage() string { + if x != nil { + return x.Image + } + return "" +} + +func (x *Place) GetHidden() bool { + if x != nil { + return x.Hidden + } + return false +} + +func (x *Place) GetApplications() []*Application { + if x != nil { + return x.Applications + } + return nil +} + +func (x *Place) GetDoors() []*Door { + if x != nil { + return x.Doors + } + return nil +} + +func (x *Place) GetKeys() []*Key { + if x != nil { + return x.Keys + } + return nil +} + +type Application struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Image string `protobuf:"bytes,2,opt,name=image,proto3" json:"image,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Application) Reset() { + *x = Application{} + mi := &file_main_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Application) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Application) ProtoMessage() {} + +func (x *Application) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[37] + 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 Application.ProtoReflect.Descriptor instead. +func (*Application) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{37} +} + +func (x *Application) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Application) GetImage() string { + if x != nil { + return x.Image + } + return "" +} + +type Door struct { + state protoimpl.MessageState `protogen:"open.v1"` + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Keys []*Key `protobuf:"bytes,3,rep,name=keys,proto3" json:"keys,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Door) Reset() { + *x = Door{} + mi := &file_main_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Door) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Door) ProtoMessage() {} + +func (x *Door) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[38] + 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 Door.ProtoReflect.Descriptor instead. +func (*Door) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{38} +} + +func (x *Door) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *Door) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Door) GetKeys() []*Key { + if x != nil { + return x.Keys + } + return nil +} + +type Key struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Key) Reset() { + *x = Key{} + mi := &file_main_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Key) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Key) ProtoMessage() {} + +func (x *Key) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[39] + 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 Key.ProtoReflect.Descriptor instead. +func (*Key) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{39} +} + +func (x *Key) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type UpdateScenarioReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + Image string `protobuf:"bytes,4,opt,name=image,proto3" json:"image,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateScenarioReq) Reset() { + *x = UpdateScenarioReq{} + mi := &file_main_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateScenarioReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateScenarioReq) ProtoMessage() {} + +func (x *UpdateScenarioReq) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[40] + 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 UpdateScenarioReq.ProtoReflect.Descriptor instead. +func (*UpdateScenarioReq) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{40} +} + +func (x *UpdateScenarioReq) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *UpdateScenarioReq) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UpdateScenarioReq) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *UpdateScenarioReq) GetImage() string { + if x != nil { + return x.Image + } + return "" +} + +type UpdateScenarioRsp 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 *UpdateScenarioRsp) Reset() { + *x = UpdateScenarioRsp{} + mi := &file_main_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateScenarioRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateScenarioRsp) ProtoMessage() {} + +func (x *UpdateScenarioRsp) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[41] + 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 UpdateScenarioRsp.ProtoReflect.Descriptor instead. +func (*UpdateScenarioRsp) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{41} +} + +func (x *UpdateScenarioRsp) 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeleteScenarioReq) Reset() { + *x = DeleteScenarioReq{} + mi := &file_main_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteScenarioReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteScenarioReq) ProtoMessage() {} + +func (x *DeleteScenarioReq) 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 DeleteScenarioReq.ProtoReflect.Descriptor instead. +func (*DeleteScenarioReq) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{42} +} + +func (x *DeleteScenarioReq) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +type DeleteScenarioRsp 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 *DeleteScenarioRsp) Reset() { + *x = DeleteScenarioRsp{} + mi := &file_main_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteScenarioRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteScenarioRsp) ProtoMessage() {} + +func (x *DeleteScenarioRsp) 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 DeleteScenarioRsp.ProtoReflect.Descriptor instead. +func (*DeleteScenarioRsp) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{43} +} + +func (x *DeleteScenarioRsp) GetError() string { + if x != nil { + return x.Error + } + return "" +} + +type AddScenarioPlaceReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + Place *Place `protobuf:"bytes,1,opt,name=place,proto3" json:"place,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AddScenarioPlaceReq) Reset() { + *x = AddScenarioPlaceReq{} + mi := &file_main_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AddScenarioPlaceReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddScenarioPlaceReq) ProtoMessage() {} + +func (x *AddScenarioPlaceReq) 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 AddScenarioPlaceReq.ProtoReflect.Descriptor instead. +func (*AddScenarioPlaceReq) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{44} +} + +func (x *AddScenarioPlaceReq) GetPlace() *Place { + if x != nil { + return x.Place + } + return nil +} + +type AddScenarioPlaceRsp 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 *AddScenarioPlaceRsp) Reset() { + *x = AddScenarioPlaceRsp{} + mi := &file_main_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AddScenarioPlaceRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddScenarioPlaceRsp) ProtoMessage() {} + +func (x *AddScenarioPlaceRsp) 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 AddScenarioPlaceRsp.ProtoReflect.Descriptor instead. +func (*AddScenarioPlaceRsp) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{45} +} + +func (x *AddScenarioPlaceRsp) GetError() string { + if x != nil { + return x.Error + } + return "" +} + +type UpdateScenarioPlaceReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + Place *Place `protobuf:"bytes,2,opt,name=place,proto3" json:"place,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateScenarioPlaceReq) Reset() { + *x = UpdateScenarioPlaceReq{} + mi := &file_main_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateScenarioPlaceReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateScenarioPlaceReq) ProtoMessage() {} + +func (x *UpdateScenarioPlaceReq) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[46] + 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 UpdateScenarioPlaceReq.ProtoReflect.Descriptor instead. +func (*UpdateScenarioPlaceReq) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{46} +} + +func (x *UpdateScenarioPlaceReq) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *UpdateScenarioPlaceReq) GetPlace() *Place { + if x != nil { + return x.Place + } + return nil +} + +type UpdateScenarioPlaceRsp 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 *UpdateScenarioPlaceRsp) Reset() { + *x = UpdateScenarioPlaceRsp{} + mi := &file_main_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateScenarioPlaceRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateScenarioPlaceRsp) ProtoMessage() {} + +func (x *UpdateScenarioPlaceRsp) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[47] + 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 UpdateScenarioPlaceRsp.ProtoReflect.Descriptor instead. +func (*UpdateScenarioPlaceRsp) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{47} +} + +func (x *UpdateScenarioPlaceRsp) GetError() string { + if x != nil { + return x.Error + } + return "" +} + +type DeleteScenarioPlaceReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeleteScenarioPlaceReq) Reset() { + *x = DeleteScenarioPlaceReq{} + mi := &file_main_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteScenarioPlaceReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteScenarioPlaceReq) ProtoMessage() {} + +func (x *DeleteScenarioPlaceReq) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[48] + 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 DeleteScenarioPlaceReq.ProtoReflect.Descriptor instead. +func (*DeleteScenarioPlaceReq) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{48} +} + +func (x *DeleteScenarioPlaceReq) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +type DeleteScenarioPlaceRsp 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 *DeleteScenarioPlaceRsp) Reset() { + *x = DeleteScenarioPlaceRsp{} + mi := &file_main_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteScenarioPlaceRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteScenarioPlaceRsp) ProtoMessage() {} + +func (x *DeleteScenarioPlaceRsp) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[49] + 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 DeleteScenarioPlaceRsp.ProtoReflect.Descriptor instead. +func (*DeleteScenarioPlaceRsp) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{49} +} + +func (x *DeleteScenarioPlaceRsp) GetError() string { + if x != nil { + return x.Error + } + return "" +} + var File_main_proto protoreflect.FileDescriptor const file_main_proto_rawDesc = "" + @@ -1448,7 +2608,79 @@ const file_main_proto_rawDesc = "" + "\x05error\x18\x01 \x01(\tR\x05error\x12\x1a\n" + "\bfilename\x18\x02 \x01(\tR\bfilename\"-\n" + "\x0fDownloadFileReq\x12\x1a\n" + - "\bfilename\x18\x01 \x01(\tR\bfilename2\x9d\x17\n" + + "\bfilename\x18\x01 \x01(\tR\bfilename\"$\n" + + "\x0eAddScenarioReq\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\"6\n" + + "\x0eAddScenarioRsp\x12\x14\n" + + "\x05error\x18\x01 \x01(\tR\x05error\x12\x0e\n" + + "\x02id\x18\x02 \x01(\x05R\x02id\"\x13\n" + + "\x11GetMyScenariosReq\"q\n" + + "\x11GetMyScenariosRsp\x12\x14\n" + + "\x05error\x18\x01 \x01(\tR\x05error\x12F\n" + + "\tscenarios\x18\x02 \x03(\v2(.crabs.evening_detective_server.ScenarioR\tscenarios\" \n" + + "\x0eGetScenarioReq\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x05R\x02id\"l\n" + + "\x0eGetScenarioRsp\x12\x14\n" + + "\x05error\x18\x01 \x01(\tR\x05error\x12D\n" + + "\bscenario\x18\x02 \x01(\v2(.crabs.evening_detective_server.ScenarioR\bscenario\"\xba\x03\n" + + "\bScenario\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x05R\x02id\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12%\n" + + "\vdescription\x18\x03 \x01(\tH\x00R\vdescription\x88\x01\x01\x12\x19\n" + + "\x05image\x18\x04 \x01(\tH\x01R\x05image\x88\x01\x01\x12;\n" + + "\x05story\x18\x05 \x01(\v2%.crabs.evening_detective_server.StoryR\x05story\x12<\n" + + "\x06author\x18\x06 \x01(\v2$.crabs.evening_detective_server.UserR\x06author\x129\n" + + "\n" + + "updated_at\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\x129\n" + + "\n" + + "created_at\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12=\n" + + "\fpublished_at\x18\t \x01(\v2\x1a.google.protobuf.TimestampR\vpublishedAtB\x0e\n" + + "\f_descriptionB\b\n" + + "\x06_image\"F\n" + + "\x05Story\x12=\n" + + "\x06places\x18\x01 \x03(\v2%.crabs.evening_detective_server.PlaceR\x06places\"\xb7\x02\n" + + "\x05Place\x12\x12\n" + + "\x04code\x18\x01 \x01(\tR\x04code\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12\x12\n" + + "\x04text\x18\x03 \x01(\tR\x04text\x12\x14\n" + + "\x05image\x18\x04 \x01(\tR\x05image\x12\x16\n" + + "\x06hidden\x18\x05 \x01(\bR\x06hidden\x12O\n" + + "\fapplications\x18\x06 \x03(\v2+.crabs.evening_detective_server.ApplicationR\fapplications\x12:\n" + + "\x05doors\x18\a \x03(\v2$.crabs.evening_detective_server.DoorR\x05doors\x127\n" + + "\x04keys\x18\b \x03(\v2#.crabs.evening_detective_server.KeyR\x04keys\"7\n" + + "\vApplication\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" + + "\x05image\x18\x02 \x01(\tR\x05image\"g\n" + + "\x04Door\x12\x12\n" + + "\x04code\x18\x01 \x01(\tR\x04code\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x127\n" + + "\x04keys\x18\x03 \x03(\v2#.crabs.evening_detective_server.KeyR\x04keys\"\x19\n" + + "\x03Key\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\"o\n" + + "\x11UpdateScenarioReq\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x05R\x02id\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12 \n" + + "\vdescription\x18\x03 \x01(\tR\vdescription\x12\x14\n" + + "\x05image\x18\x04 \x01(\tR\x05image\")\n" + + "\x11UpdateScenarioRsp\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" + + "\x05error\x18\x01 \x01(\tR\x05error\"R\n" + + "\x13AddScenarioPlaceReq\x12;\n" + + "\x05place\x18\x01 \x01(\v2%.crabs.evening_detective_server.PlaceR\x05place\"+\n" + + "\x13AddScenarioPlaceRsp\x12\x14\n" + + "\x05error\x18\x01 \x01(\tR\x05error\"i\n" + + "\x16UpdateScenarioPlaceReq\x12\x12\n" + + "\x04code\x18\x01 \x01(\tR\x04code\x12;\n" + + "\x05place\x18\x02 \x01(\v2%.crabs.evening_detective_server.PlaceR\x05place\".\n" + + "\x16UpdateScenarioPlaceRsp\x12\x14\n" + + "\x05error\x18\x01 \x01(\tR\x05error\",\n" + + "\x16DeleteScenarioPlaceReq\x12\x12\n" + + "\x04code\x18\x01 \x01(\tR\x04code\".\n" + + "\x16DeleteScenarioPlaceRsp\x12\x14\n" + + "\x05error\x18\x01 \x01(\tR\x05error2\x8c%\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" + @@ -1491,7 +2723,23 @@ const file_main_proto_rawDesc = "" + "Файлы\x12\x1bЗагрузить файл\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/api/files/upload\x12\x9e\x01\n" + "\fDownloadFile\x12/.crabs.evening_detective_server.DownloadFileReq\x1a\x14.google.api.HttpBody\"G\x92A'\n" + "\n" + - "Файлы\x12\x19Получить файл\x82\xd3\xe4\x93\x02\x17\x12\x15/api/files/{filename}B\xd7\x01\x92A\xc8\x01\x12U\n" + + "Файлы\x12\x19Получить файл\x82\xd3\xe4\x93\x02\x17\x12\x15/api/files/{filename}\x12\xbd\x01\n" + + "\vAddScenario\x12..crabs.evening_detective_server.AddScenarioReq\x1a..crabs.evening_detective_server.AddScenarioRsp\"N\x92A3\n" + + "\x10Сценарии\x12\x1fСоздать сценарий\x82\xd3\xe4\x93\x02\x12:\x01*\"\r/api/scenario\x12\xd2\x01\n" + + "\x0eGetMyScenarios\x121.crabs.evening_detective_server.GetMyScenariosReq\x1a1.crabs.evening_detective_server.GetMyScenariosRsp\"Z\x92A>\n" + + "\x10Сценарии\x12*Получить свои сценарии\x82\xd3\xe4\x93\x02\x13\x12\x11/api/my-scenarios\x12\xca\x01\n" + + "\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" + + "\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\xea\x01\n" + + "\x10AddScenarioPlace\x123.crabs.evening_detective_server.AddScenarioPlaceReq\x1a3.crabs.evening_detective_server.AddScenarioPlaceRsp\"l\x92AI\n" + + "\x1bТочки сценария\x12*Создать точку сценария\x82\xd3\xe4\x93\x02\x1a:\x01*\"\x15/api/scenarios/places\x12\xfc\x01\n" + + "\x13UpdateScenarioPlace\x126.crabs.evening_detective_server.UpdateScenarioPlaceReq\x1a6.crabs.evening_detective_server.UpdateScenarioPlaceRsp\"u\x92AK\n" + + "\x1bТочки сценария\x12,Обновить точку сценария\x82\xd3\xe4\x93\x02!:\x01*\x1a\x1c/api/scenarios/places/{code}\x12\xf7\x01\n" + + "\x13DeleteScenarioPlace\x126.crabs.evening_detective_server.DeleteScenarioPlaceReq\x1a6.crabs.evening_detective_server.DeleteScenarioPlaceRsp\"p\x92AI\n" + + "\x1bТочки сценария\x12*Удалить точку сценария\x82\xd3\xe4\x93\x02\x1e*\x1c/api/scenarios/places/{code}B\xd7\x01\x92A\xc8\x01\x12U\n" + "KДокументация сервиса \"Вечерний детектив\"2\x06v0.1.0Z]\n" + "[\n" + "\n" + @@ -1512,77 +2760,129 @@ func file_main_proto_rawDescGZIP() []byte { return file_main_proto_rawDescData } -var file_main_proto_msgTypes = make([]protoimpl.MessageInfo, 28) +var file_main_proto_msgTypes = make([]protoimpl.MessageInfo, 50) var file_main_proto_goTypes = []any{ - (*PingReq)(nil), // 0: crabs.evening_detective_server.PingReq - (*PingRsp)(nil), // 1: crabs.evening_detective_server.PingRsp - (*EchoReq)(nil), // 2: crabs.evening_detective_server.EchoReq - (*EchoRsp)(nil), // 3: crabs.evening_detective_server.EchoRsp - (*SignupReq)(nil), // 4: crabs.evening_detective_server.SignupReq - (*SignupRsp)(nil), // 5: crabs.evening_detective_server.SignupRsp - (*RefreshPasswordReq)(nil), // 6: crabs.evening_detective_server.RefreshPasswordReq - (*RefreshPasswordRsp)(nil), // 7: crabs.evening_detective_server.RefreshPasswordRsp - (*LoginReq)(nil), // 8: crabs.evening_detective_server.LoginReq - (*LoginRsp)(nil), // 9: crabs.evening_detective_server.LoginRsp - (*RefreshReq)(nil), // 10: crabs.evening_detective_server.RefreshReq - (*RefreshRsp)(nil), // 11: crabs.evening_detective_server.RefreshRsp - (*GetUsersReq)(nil), // 12: crabs.evening_detective_server.GetUsersReq - (*GetUsersRsp)(nil), // 13: crabs.evening_detective_server.GetUsersRsp - (*User)(nil), // 14: crabs.evening_detective_server.User - (*GetUserByIdReq)(nil), // 15: crabs.evening_detective_server.GetUserByIdReq - (*GetUserByIdRsp)(nil), // 16: crabs.evening_detective_server.GetUserByIdRsp - (*GetMeReq)(nil), // 17: crabs.evening_detective_server.GetMeReq - (*GetMeRsp)(nil), // 18: crabs.evening_detective_server.GetMeRsp - (*AddUserRoleReq)(nil), // 19: crabs.evening_detective_server.AddUserRoleReq - (*AddUserRoleRsp)(nil), // 20: crabs.evening_detective_server.AddUserRoleRsp - (*DeleteUserRoleReq)(nil), // 21: crabs.evening_detective_server.DeleteUserRoleReq - (*DeleteUserRoleRsp)(nil), // 22: crabs.evening_detective_server.DeleteUserRoleRsp - (*GetPermissionsReq)(nil), // 23: crabs.evening_detective_server.GetPermissionsReq - (*GetPermissionsRsp)(nil), // 24: crabs.evening_detective_server.GetPermissionsRsp - (*UploadFileReq)(nil), // 25: crabs.evening_detective_server.UploadFileReq - (*UploadFileRsp)(nil), // 26: crabs.evening_detective_server.UploadFileRsp - (*DownloadFileReq)(nil), // 27: crabs.evening_detective_server.DownloadFileReq - (*timestamppb.Timestamp)(nil), // 28: google.protobuf.Timestamp - (*httpbody.HttpBody)(nil), // 29: google.api.HttpBody + (*PingReq)(nil), // 0: crabs.evening_detective_server.PingReq + (*PingRsp)(nil), // 1: crabs.evening_detective_server.PingRsp + (*EchoReq)(nil), // 2: crabs.evening_detective_server.EchoReq + (*EchoRsp)(nil), // 3: crabs.evening_detective_server.EchoRsp + (*SignupReq)(nil), // 4: crabs.evening_detective_server.SignupReq + (*SignupRsp)(nil), // 5: crabs.evening_detective_server.SignupRsp + (*RefreshPasswordReq)(nil), // 6: crabs.evening_detective_server.RefreshPasswordReq + (*RefreshPasswordRsp)(nil), // 7: crabs.evening_detective_server.RefreshPasswordRsp + (*LoginReq)(nil), // 8: crabs.evening_detective_server.LoginReq + (*LoginRsp)(nil), // 9: crabs.evening_detective_server.LoginRsp + (*RefreshReq)(nil), // 10: crabs.evening_detective_server.RefreshReq + (*RefreshRsp)(nil), // 11: crabs.evening_detective_server.RefreshRsp + (*GetUsersReq)(nil), // 12: crabs.evening_detective_server.GetUsersReq + (*GetUsersRsp)(nil), // 13: crabs.evening_detective_server.GetUsersRsp + (*User)(nil), // 14: crabs.evening_detective_server.User + (*GetUserByIdReq)(nil), // 15: crabs.evening_detective_server.GetUserByIdReq + (*GetUserByIdRsp)(nil), // 16: crabs.evening_detective_server.GetUserByIdRsp + (*GetMeReq)(nil), // 17: crabs.evening_detective_server.GetMeReq + (*GetMeRsp)(nil), // 18: crabs.evening_detective_server.GetMeRsp + (*AddUserRoleReq)(nil), // 19: crabs.evening_detective_server.AddUserRoleReq + (*AddUserRoleRsp)(nil), // 20: crabs.evening_detective_server.AddUserRoleRsp + (*DeleteUserRoleReq)(nil), // 21: crabs.evening_detective_server.DeleteUserRoleReq + (*DeleteUserRoleRsp)(nil), // 22: crabs.evening_detective_server.DeleteUserRoleRsp + (*GetPermissionsReq)(nil), // 23: crabs.evening_detective_server.GetPermissionsReq + (*GetPermissionsRsp)(nil), // 24: crabs.evening_detective_server.GetPermissionsRsp + (*UploadFileReq)(nil), // 25: crabs.evening_detective_server.UploadFileReq + (*UploadFileRsp)(nil), // 26: crabs.evening_detective_server.UploadFileRsp + (*DownloadFileReq)(nil), // 27: crabs.evening_detective_server.DownloadFileReq + (*AddScenarioReq)(nil), // 28: crabs.evening_detective_server.AddScenarioReq + (*AddScenarioRsp)(nil), // 29: crabs.evening_detective_server.AddScenarioRsp + (*GetMyScenariosReq)(nil), // 30: crabs.evening_detective_server.GetMyScenariosReq + (*GetMyScenariosRsp)(nil), // 31: crabs.evening_detective_server.GetMyScenariosRsp + (*GetScenarioReq)(nil), // 32: crabs.evening_detective_server.GetScenarioReq + (*GetScenarioRsp)(nil), // 33: crabs.evening_detective_server.GetScenarioRsp + (*Scenario)(nil), // 34: crabs.evening_detective_server.Scenario + (*Story)(nil), // 35: crabs.evening_detective_server.Story + (*Place)(nil), // 36: crabs.evening_detective_server.Place + (*Application)(nil), // 37: crabs.evening_detective_server.Application + (*Door)(nil), // 38: crabs.evening_detective_server.Door + (*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 } var file_main_proto_depIdxs = []int32{ 14, // 0: crabs.evening_detective_server.GetUsersRsp.users:type_name -> crabs.evening_detective_server.User - 28, // 1: crabs.evening_detective_server.User.created_at:type_name -> google.protobuf.Timestamp + 50, // 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 - 0, // 4: crabs.evening_detective_server.EveningDetectiveServer.Ping:input_type -> crabs.evening_detective_server.PingReq - 2, // 5: crabs.evening_detective_server.EveningDetectiveServer.Echo:input_type -> crabs.evening_detective_server.EchoReq - 4, // 6: crabs.evening_detective_server.EveningDetectiveServer.Signup:input_type -> crabs.evening_detective_server.SignupReq - 6, // 7: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:input_type -> crabs.evening_detective_server.RefreshPasswordReq - 8, // 8: crabs.evening_detective_server.EveningDetectiveServer.Login:input_type -> crabs.evening_detective_server.LoginReq - 10, // 9: crabs.evening_detective_server.EveningDetectiveServer.Refresh:input_type -> crabs.evening_detective_server.RefreshReq - 12, // 10: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:input_type -> crabs.evening_detective_server.GetUsersReq - 15, // 11: crabs.evening_detective_server.EveningDetectiveServer.GetUserById:input_type -> crabs.evening_detective_server.GetUserByIdReq - 17, // 12: crabs.evening_detective_server.EveningDetectiveServer.GetMe:input_type -> crabs.evening_detective_server.GetMeReq - 19, // 13: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:input_type -> crabs.evening_detective_server.AddUserRoleReq - 21, // 14: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:input_type -> crabs.evening_detective_server.DeleteUserRoleReq - 23, // 15: crabs.evening_detective_server.EveningDetectiveServer.GetPermissions:input_type -> crabs.evening_detective_server.GetPermissionsReq - 25, // 16: crabs.evening_detective_server.EveningDetectiveServer.UploadFile:input_type -> crabs.evening_detective_server.UploadFileReq - 27, // 17: crabs.evening_detective_server.EveningDetectiveServer.DownloadFile:input_type -> crabs.evening_detective_server.DownloadFileReq - 1, // 18: crabs.evening_detective_server.EveningDetectiveServer.Ping:output_type -> crabs.evening_detective_server.PingRsp - 3, // 19: crabs.evening_detective_server.EveningDetectiveServer.Echo:output_type -> crabs.evening_detective_server.EchoRsp - 5, // 20: crabs.evening_detective_server.EveningDetectiveServer.Signup:output_type -> crabs.evening_detective_server.SignupRsp - 7, // 21: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:output_type -> crabs.evening_detective_server.RefreshPasswordRsp - 9, // 22: crabs.evening_detective_server.EveningDetectiveServer.Login:output_type -> crabs.evening_detective_server.LoginRsp - 11, // 23: crabs.evening_detective_server.EveningDetectiveServer.Refresh:output_type -> crabs.evening_detective_server.RefreshRsp - 13, // 24: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:output_type -> crabs.evening_detective_server.GetUsersRsp - 16, // 25: crabs.evening_detective_server.EveningDetectiveServer.GetUserById:output_type -> crabs.evening_detective_server.GetUserByIdRsp - 18, // 26: crabs.evening_detective_server.EveningDetectiveServer.GetMe:output_type -> crabs.evening_detective_server.GetMeRsp - 20, // 27: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:output_type -> crabs.evening_detective_server.AddUserRoleRsp - 22, // 28: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:output_type -> crabs.evening_detective_server.DeleteUserRoleRsp - 24, // 29: crabs.evening_detective_server.EveningDetectiveServer.GetPermissions:output_type -> crabs.evening_detective_server.GetPermissionsRsp - 26, // 30: crabs.evening_detective_server.EveningDetectiveServer.UploadFile:output_type -> crabs.evening_detective_server.UploadFileRsp - 29, // 31: crabs.evening_detective_server.EveningDetectiveServer.DownloadFile:output_type -> google.api.HttpBody - 18, // [18:32] is the sub-list for method output_type - 4, // [4:18] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name + 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 + 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 + 39, // 14: crabs.evening_detective_server.Place.keys:type_name -> crabs.evening_detective_server.Key + 39, // 15: crabs.evening_detective_server.Door.keys:type_name -> crabs.evening_detective_server.Key + 36, // 16: crabs.evening_detective_server.AddScenarioPlaceReq.place:type_name -> crabs.evening_detective_server.Place + 36, // 17: crabs.evening_detective_server.UpdateScenarioPlaceReq.place:type_name -> crabs.evening_detective_server.Place + 0, // 18: crabs.evening_detective_server.EveningDetectiveServer.Ping:input_type -> crabs.evening_detective_server.PingReq + 2, // 19: crabs.evening_detective_server.EveningDetectiveServer.Echo:input_type -> crabs.evening_detective_server.EchoReq + 4, // 20: crabs.evening_detective_server.EveningDetectiveServer.Signup:input_type -> crabs.evening_detective_server.SignupReq + 6, // 21: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:input_type -> crabs.evening_detective_server.RefreshPasswordReq + 8, // 22: crabs.evening_detective_server.EveningDetectiveServer.Login:input_type -> crabs.evening_detective_server.LoginReq + 10, // 23: crabs.evening_detective_server.EveningDetectiveServer.Refresh:input_type -> crabs.evening_detective_server.RefreshReq + 12, // 24: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:input_type -> crabs.evening_detective_server.GetUsersReq + 15, // 25: crabs.evening_detective_server.EveningDetectiveServer.GetUserById:input_type -> crabs.evening_detective_server.GetUserByIdReq + 17, // 26: crabs.evening_detective_server.EveningDetectiveServer.GetMe:input_type -> crabs.evening_detective_server.GetMeReq + 19, // 27: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:input_type -> crabs.evening_detective_server.AddUserRoleReq + 21, // 28: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:input_type -> crabs.evening_detective_server.DeleteUserRoleReq + 23, // 29: crabs.evening_detective_server.EveningDetectiveServer.GetPermissions:input_type -> crabs.evening_detective_server.GetPermissionsReq + 25, // 30: crabs.evening_detective_server.EveningDetectiveServer.UploadFile:input_type -> crabs.evening_detective_server.UploadFileReq + 27, // 31: crabs.evening_detective_server.EveningDetectiveServer.DownloadFile:input_type -> crabs.evening_detective_server.DownloadFileReq + 28, // 32: crabs.evening_detective_server.EveningDetectiveServer.AddScenario:input_type -> crabs.evening_detective_server.AddScenarioReq + 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 + 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 } func init() { file_main_proto_init() } @@ -1590,13 +2890,14 @@ func file_main_proto_init() { if File_main_proto != nil { return } + file_main_proto_msgTypes[34].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_main_proto_rawDesc), len(file_main_proto_rawDesc)), NumEnums: 0, - NumMessages: 28, + NumMessages: 50, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/main.pb.gw.go b/proto/main.pb.gw.go index 9de99dd..ac1dc71 100644 --- a/proto/main.pb.gw.go +++ b/proto/main.pb.gw.go @@ -457,6 +457,288 @@ func local_request_EveningDetectiveServer_DownloadFile_0(ctx context.Context, ma return msg, metadata, err } +func request_EveningDetectiveServer_AddScenario_0(ctx context.Context, marshaler runtime.Marshaler, client EveningDetectiveServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq AddScenarioReq + metadata runtime.ServerMetadata + ) + 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) + } + msg, err := client.AddScenario(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err +} + +func local_request_EveningDetectiveServer_AddScenario_0(ctx context.Context, marshaler runtime.Marshaler, server EveningDetectiveServerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq AddScenarioReq + metadata runtime.ServerMetadata + ) + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := server.AddScenario(ctx, &protoReq) + return msg, metadata, err +} + +func request_EveningDetectiveServer_GetMyScenarios_0(ctx context.Context, marshaler runtime.Marshaler, client EveningDetectiveServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq GetMyScenariosReq + metadata runtime.ServerMetadata + ) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } + msg, err := client.GetMyScenarios(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err +} + +func local_request_EveningDetectiveServer_GetMyScenarios_0(ctx context.Context, marshaler runtime.Marshaler, server EveningDetectiveServerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq GetMyScenariosReq + metadata runtime.ServerMetadata + ) + msg, err := server.GetMyScenarios(ctx, &protoReq) + return msg, metadata, err +} + +func request_EveningDetectiveServer_GetScenario_0(ctx context.Context, marshaler runtime.Marshaler, client EveningDetectiveServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq GetScenarioReq + metadata runtime.ServerMetadata + err error + ) + 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.GetScenario(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err +} + +func local_request_EveningDetectiveServer_GetScenario_0(ctx context.Context, marshaler runtime.Marshaler, server EveningDetectiveServerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq GetScenarioReq + metadata runtime.ServerMetadata + err error + ) + 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.GetScenario(ctx, &protoReq) + return msg, metadata, err +} + +func request_EveningDetectiveServer_UpdateScenario_0(ctx context.Context, marshaler runtime.Marshaler, client EveningDetectiveServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq UpdateScenarioReq + 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.UpdateScenario(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err +} + +func local_request_EveningDetectiveServer_UpdateScenario_0(ctx context.Context, marshaler runtime.Marshaler, server EveningDetectiveServerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq UpdateScenarioReq + 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.UpdateScenario(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 + metadata runtime.ServerMetadata + err error + ) + 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.DeleteScenario(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err +} + +func local_request_EveningDetectiveServer_DeleteScenario_0(ctx context.Context, marshaler runtime.Marshaler, server EveningDetectiveServerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq DeleteScenarioReq + metadata runtime.ServerMetadata + err error + ) + 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.DeleteScenario(ctx, &protoReq) + return msg, metadata, err +} + +func request_EveningDetectiveServer_AddScenarioPlace_0(ctx context.Context, marshaler runtime.Marshaler, client EveningDetectiveServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq AddScenarioPlaceReq + metadata runtime.ServerMetadata + ) + 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) + } + msg, err := client.AddScenarioPlace(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err +} + +func local_request_EveningDetectiveServer_AddScenarioPlace_0(ctx context.Context, marshaler runtime.Marshaler, server EveningDetectiveServerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq AddScenarioPlaceReq + metadata runtime.ServerMetadata + ) + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := server.AddScenarioPlace(ctx, &protoReq) + return msg, metadata, err +} + +func request_EveningDetectiveServer_UpdateScenarioPlace_0(ctx context.Context, marshaler runtime.Marshaler, client EveningDetectiveServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq UpdateScenarioPlaceReq + 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["code"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "code") + } + protoReq.Code, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "code", err) + } + msg, err := client.UpdateScenarioPlace(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err +} + +func local_request_EveningDetectiveServer_UpdateScenarioPlace_0(ctx context.Context, marshaler runtime.Marshaler, server EveningDetectiveServerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq UpdateScenarioPlaceReq + 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["code"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "code") + } + protoReq.Code, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "code", err) + } + msg, err := server.UpdateScenarioPlace(ctx, &protoReq) + return msg, metadata, err +} + +func request_EveningDetectiveServer_DeleteScenarioPlace_0(ctx context.Context, marshaler runtime.Marshaler, client EveningDetectiveServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq DeleteScenarioPlaceReq + metadata runtime.ServerMetadata + err error + ) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } + val, ok := pathParams["code"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "code") + } + protoReq.Code, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "code", err) + } + msg, err := client.DeleteScenarioPlace(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err +} + +func local_request_EveningDetectiveServer_DeleteScenarioPlace_0(ctx context.Context, marshaler runtime.Marshaler, server EveningDetectiveServerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq DeleteScenarioPlaceReq + metadata runtime.ServerMetadata + err error + ) + val, ok := pathParams["code"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "code") + } + protoReq.Code, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "code", err) + } + msg, err := server.DeleteScenarioPlace(ctx, &protoReq) + return msg, metadata, err +} + // RegisterEveningDetectiveServerHandlerServer registers the http handlers for service EveningDetectiveServer to "mux". // UnaryRPC :call EveningDetectiveServerServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -743,6 +1025,166 @@ func RegisterEveningDetectiveServerHandlerServer(ctx context.Context, mux *runti } forward_EveningDetectiveServer_DownloadFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) + mux.Handle(http.MethodPost, pattern_EveningDetectiveServer_AddScenario_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/AddScenario", runtime.WithHTTPPathPattern("/api/scenario")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EveningDetectiveServer_AddScenario_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_AddScenario_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodGet, pattern_EveningDetectiveServer_GetMyScenarios_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/GetMyScenarios", runtime.WithHTTPPathPattern("/api/my-scenarios")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EveningDetectiveServer_GetMyScenarios_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_GetMyScenarios_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodGet, pattern_EveningDetectiveServer_GetScenario_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/GetScenario", runtime.WithHTTPPathPattern("/api/scenarios/{id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EveningDetectiveServer_GetScenario_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_GetScenario_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodPut, pattern_EveningDetectiveServer_UpdateScenario_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/UpdateScenario", runtime.WithHTTPPathPattern("/api/scenarios/{id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EveningDetectiveServer_UpdateScenario_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_UpdateScenario_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() + 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/DeleteScenario", runtime.WithHTTPPathPattern("/api/scenarios/{id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EveningDetectiveServer_DeleteScenario_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_DeleteScenario_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodPost, pattern_EveningDetectiveServer_AddScenarioPlace_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/AddScenarioPlace", runtime.WithHTTPPathPattern("/api/scenarios/places")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EveningDetectiveServer_AddScenarioPlace_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_AddScenarioPlace_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodPut, pattern_EveningDetectiveServer_UpdateScenarioPlace_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/UpdateScenarioPlace", runtime.WithHTTPPathPattern("/api/scenarios/places/{code}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EveningDetectiveServer_UpdateScenarioPlace_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_UpdateScenarioPlace_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodDelete, pattern_EveningDetectiveServer_DeleteScenarioPlace_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/DeleteScenarioPlace", runtime.WithHTTPPathPattern("/api/scenarios/places/{code}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EveningDetectiveServer_DeleteScenarioPlace_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_DeleteScenarioPlace_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) return nil } @@ -1021,39 +1463,191 @@ func RegisterEveningDetectiveServerHandlerClient(ctx context.Context, mux *runti } forward_EveningDetectiveServer_DownloadFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) + mux.Handle(http.MethodPost, pattern_EveningDetectiveServer_AddScenario_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/AddScenario", runtime.WithHTTPPathPattern("/api/scenario")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EveningDetectiveServer_AddScenario_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_AddScenario_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodGet, pattern_EveningDetectiveServer_GetMyScenarios_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/GetMyScenarios", runtime.WithHTTPPathPattern("/api/my-scenarios")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EveningDetectiveServer_GetMyScenarios_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_GetMyScenarios_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodGet, pattern_EveningDetectiveServer_GetScenario_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/GetScenario", runtime.WithHTTPPathPattern("/api/scenarios/{id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EveningDetectiveServer_GetScenario_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_GetScenario_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodPut, pattern_EveningDetectiveServer_UpdateScenario_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/UpdateScenario", runtime.WithHTTPPathPattern("/api/scenarios/{id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EveningDetectiveServer_UpdateScenario_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_UpdateScenario_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() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/crabs.evening_detective_server.EveningDetectiveServer/DeleteScenario", runtime.WithHTTPPathPattern("/api/scenarios/{id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EveningDetectiveServer_DeleteScenario_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_DeleteScenario_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodPost, pattern_EveningDetectiveServer_AddScenarioPlace_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/AddScenarioPlace", runtime.WithHTTPPathPattern("/api/scenarios/places")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EveningDetectiveServer_AddScenarioPlace_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_AddScenarioPlace_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodPut, pattern_EveningDetectiveServer_UpdateScenarioPlace_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/UpdateScenarioPlace", runtime.WithHTTPPathPattern("/api/scenarios/places/{code}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EveningDetectiveServer_UpdateScenarioPlace_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_UpdateScenarioPlace_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodDelete, pattern_EveningDetectiveServer_DeleteScenarioPlace_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/DeleteScenarioPlace", runtime.WithHTTPPathPattern("/api/scenarios/places/{code}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EveningDetectiveServer_DeleteScenarioPlace_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_DeleteScenarioPlace_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) return nil } var ( - pattern_EveningDetectiveServer_Ping_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "test", "ping"}, "")) - pattern_EveningDetectiveServer_Echo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "test", "echo"}, "")) - pattern_EveningDetectiveServer_Signup_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "auth", "signup"}, "")) - pattern_EveningDetectiveServer_RefreshPassword_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "auth", "refresh-password"}, "")) - pattern_EveningDetectiveServer_Login_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "auth", "login"}, "")) - pattern_EveningDetectiveServer_Refresh_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "auth", "refresh"}, "")) - pattern_EveningDetectiveServer_GetUsers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"api", "users"}, "")) - pattern_EveningDetectiveServer_GetUserById_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2}, []string{"api", "users", "id"}, "")) - pattern_EveningDetectiveServer_GetMe_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "users", "me"}, "")) - pattern_EveningDetectiveServer_AddUserRole_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 2, 4}, []string{"api", "users", "id", "role", "add"}, "")) - pattern_EveningDetectiveServer_DeleteUserRole_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 2, 4}, []string{"api", "users", "id", "role", "delete"}, "")) - pattern_EveningDetectiveServer_GetPermissions_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "ui", "permissions"}, "")) - pattern_EveningDetectiveServer_UploadFile_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "files", "upload"}, "")) - pattern_EveningDetectiveServer_DownloadFile_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2}, []string{"api", "files", "filename"}, "")) + pattern_EveningDetectiveServer_Ping_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "test", "ping"}, "")) + pattern_EveningDetectiveServer_Echo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "test", "echo"}, "")) + pattern_EveningDetectiveServer_Signup_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "auth", "signup"}, "")) + pattern_EveningDetectiveServer_RefreshPassword_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "auth", "refresh-password"}, "")) + pattern_EveningDetectiveServer_Login_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "auth", "login"}, "")) + pattern_EveningDetectiveServer_Refresh_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "auth", "refresh"}, "")) + pattern_EveningDetectiveServer_GetUsers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"api", "users"}, "")) + pattern_EveningDetectiveServer_GetUserById_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2}, []string{"api", "users", "id"}, "")) + pattern_EveningDetectiveServer_GetMe_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "users", "me"}, "")) + pattern_EveningDetectiveServer_AddUserRole_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 2, 4}, []string{"api", "users", "id", "role", "add"}, "")) + pattern_EveningDetectiveServer_DeleteUserRole_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 2, 4}, []string{"api", "users", "id", "role", "delete"}, "")) + pattern_EveningDetectiveServer_GetPermissions_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "ui", "permissions"}, "")) + pattern_EveningDetectiveServer_UploadFile_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "files", "upload"}, "")) + pattern_EveningDetectiveServer_DownloadFile_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2}, []string{"api", "files", "filename"}, "")) + pattern_EveningDetectiveServer_AddScenario_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"api", "scenario"}, "")) + 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_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, 2, 2}, []string{"api", "scenarios", "places"}, "")) + pattern_EveningDetectiveServer_UpdateScenarioPlace_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "scenarios", "places", "code"}, "")) + pattern_EveningDetectiveServer_DeleteScenarioPlace_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "scenarios", "places", "code"}, "")) ) var ( - forward_EveningDetectiveServer_Ping_0 = runtime.ForwardResponseMessage - forward_EveningDetectiveServer_Echo_0 = runtime.ForwardResponseMessage - forward_EveningDetectiveServer_Signup_0 = runtime.ForwardResponseMessage - forward_EveningDetectiveServer_RefreshPassword_0 = runtime.ForwardResponseMessage - forward_EveningDetectiveServer_Login_0 = runtime.ForwardResponseMessage - forward_EveningDetectiveServer_Refresh_0 = runtime.ForwardResponseMessage - forward_EveningDetectiveServer_GetUsers_0 = runtime.ForwardResponseMessage - forward_EveningDetectiveServer_GetUserById_0 = runtime.ForwardResponseMessage - forward_EveningDetectiveServer_GetMe_0 = runtime.ForwardResponseMessage - forward_EveningDetectiveServer_AddUserRole_0 = runtime.ForwardResponseMessage - forward_EveningDetectiveServer_DeleteUserRole_0 = runtime.ForwardResponseMessage - forward_EveningDetectiveServer_GetPermissions_0 = runtime.ForwardResponseMessage - forward_EveningDetectiveServer_UploadFile_0 = runtime.ForwardResponseMessage - forward_EveningDetectiveServer_DownloadFile_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_Ping_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_Echo_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_Signup_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_RefreshPassword_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_Login_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_Refresh_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_GetUsers_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_GetUserById_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_GetMe_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_AddUserRole_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_DeleteUserRole_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_GetPermissions_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_UploadFile_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_DownloadFile_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_AddScenario_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_GetMyScenarios_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_GetScenario_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_UpdateScenario_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_DeleteScenario_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_AddScenarioPlace_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_UpdateScenarioPlace_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_DeleteScenarioPlace_0 = runtime.ForwardResponseMessage ) diff --git a/proto/main_grpc.pb.go b/proto/main_grpc.pb.go index 1e5eb7f..0d7862f 100644 --- a/proto/main_grpc.pb.go +++ b/proto/main_grpc.pb.go @@ -20,20 +20,28 @@ import ( const _ = grpc.SupportPackageIsVersion9 const ( - EveningDetectiveServer_Ping_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/Ping" - EveningDetectiveServer_Echo_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/Echo" - EveningDetectiveServer_Signup_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/Signup" - EveningDetectiveServer_RefreshPassword_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/RefreshPassword" - EveningDetectiveServer_Login_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/Login" - EveningDetectiveServer_Refresh_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/Refresh" - EveningDetectiveServer_GetUsers_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/GetUsers" - EveningDetectiveServer_GetUserById_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/GetUserById" - EveningDetectiveServer_GetMe_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/GetMe" - EveningDetectiveServer_AddUserRole_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/AddUserRole" - EveningDetectiveServer_DeleteUserRole_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/DeleteUserRole" - EveningDetectiveServer_GetPermissions_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/GetPermissions" - EveningDetectiveServer_UploadFile_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/UploadFile" - EveningDetectiveServer_DownloadFile_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/DownloadFile" + EveningDetectiveServer_Ping_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/Ping" + EveningDetectiveServer_Echo_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/Echo" + EveningDetectiveServer_Signup_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/Signup" + EveningDetectiveServer_RefreshPassword_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/RefreshPassword" + EveningDetectiveServer_Login_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/Login" + EveningDetectiveServer_Refresh_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/Refresh" + EveningDetectiveServer_GetUsers_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/GetUsers" + EveningDetectiveServer_GetUserById_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/GetUserById" + EveningDetectiveServer_GetMe_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/GetMe" + EveningDetectiveServer_AddUserRole_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/AddUserRole" + EveningDetectiveServer_DeleteUserRole_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/DeleteUserRole" + EveningDetectiveServer_GetPermissions_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/GetPermissions" + EveningDetectiveServer_UploadFile_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/UploadFile" + EveningDetectiveServer_DownloadFile_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/DownloadFile" + EveningDetectiveServer_AddScenario_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/AddScenario" + 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_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" + EveningDetectiveServer_DeleteScenarioPlace_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/DeleteScenarioPlace" ) // EveningDetectiveServerClient is the client API for EveningDetectiveServer service. @@ -54,6 +62,14 @@ type EveningDetectiveServerClient interface { GetPermissions(ctx context.Context, in *GetPermissionsReq, opts ...grpc.CallOption) (*GetPermissionsRsp, error) UploadFile(ctx context.Context, in *UploadFileReq, opts ...grpc.CallOption) (*UploadFileRsp, error) DownloadFile(ctx context.Context, in *DownloadFileReq, opts ...grpc.CallOption) (*httpbody.HttpBody, error) + AddScenario(ctx context.Context, in *AddScenarioReq, opts ...grpc.CallOption) (*AddScenarioRsp, error) + 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) + 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) + DeleteScenarioPlace(ctx context.Context, in *DeleteScenarioPlaceReq, opts ...grpc.CallOption) (*DeleteScenarioPlaceRsp, error) } type eveningDetectiveServerClient struct { @@ -204,6 +220,86 @@ func (c *eveningDetectiveServerClient) DownloadFile(ctx context.Context, in *Dow return out, nil } +func (c *eveningDetectiveServerClient) AddScenario(ctx context.Context, in *AddScenarioReq, opts ...grpc.CallOption) (*AddScenarioRsp, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(AddScenarioRsp) + err := c.cc.Invoke(ctx, EveningDetectiveServer_AddScenario_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eveningDetectiveServerClient) GetMyScenarios(ctx context.Context, in *GetMyScenariosReq, opts ...grpc.CallOption) (*GetMyScenariosRsp, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetMyScenariosRsp) + err := c.cc.Invoke(ctx, EveningDetectiveServer_GetMyScenarios_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eveningDetectiveServerClient) GetScenario(ctx context.Context, in *GetScenarioReq, opts ...grpc.CallOption) (*GetScenarioRsp, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetScenarioRsp) + err := c.cc.Invoke(ctx, EveningDetectiveServer_GetScenario_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eveningDetectiveServerClient) UpdateScenario(ctx context.Context, in *UpdateScenarioReq, opts ...grpc.CallOption) (*UpdateScenarioRsp, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(UpdateScenarioRsp) + err := c.cc.Invoke(ctx, EveningDetectiveServer_UpdateScenario_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) + err := c.cc.Invoke(ctx, EveningDetectiveServer_DeleteScenario_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eveningDetectiveServerClient) AddScenarioPlace(ctx context.Context, in *AddScenarioPlaceReq, opts ...grpc.CallOption) (*AddScenarioPlaceRsp, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(AddScenarioPlaceRsp) + err := c.cc.Invoke(ctx, EveningDetectiveServer_AddScenarioPlace_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eveningDetectiveServerClient) UpdateScenarioPlace(ctx context.Context, in *UpdateScenarioPlaceReq, opts ...grpc.CallOption) (*UpdateScenarioPlaceRsp, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(UpdateScenarioPlaceRsp) + err := c.cc.Invoke(ctx, EveningDetectiveServer_UpdateScenarioPlace_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eveningDetectiveServerClient) DeleteScenarioPlace(ctx context.Context, in *DeleteScenarioPlaceReq, opts ...grpc.CallOption) (*DeleteScenarioPlaceRsp, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(DeleteScenarioPlaceRsp) + err := c.cc.Invoke(ctx, EveningDetectiveServer_DeleteScenarioPlace_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + // EveningDetectiveServerServer is the server API for EveningDetectiveServer service. // All implementations must embed UnimplementedEveningDetectiveServerServer // for forward compatibility. @@ -222,6 +318,14 @@ type EveningDetectiveServerServer interface { GetPermissions(context.Context, *GetPermissionsReq) (*GetPermissionsRsp, error) UploadFile(context.Context, *UploadFileReq) (*UploadFileRsp, error) DownloadFile(context.Context, *DownloadFileReq) (*httpbody.HttpBody, error) + AddScenario(context.Context, *AddScenarioReq) (*AddScenarioRsp, error) + GetMyScenarios(context.Context, *GetMyScenariosReq) (*GetMyScenariosRsp, error) + GetScenario(context.Context, *GetScenarioReq) (*GetScenarioRsp, error) + UpdateScenario(context.Context, *UpdateScenarioReq) (*UpdateScenarioRsp, error) + DeleteScenario(context.Context, *DeleteScenarioReq) (*DeleteScenarioRsp, error) + AddScenarioPlace(context.Context, *AddScenarioPlaceReq) (*AddScenarioPlaceRsp, error) + UpdateScenarioPlace(context.Context, *UpdateScenarioPlaceReq) (*UpdateScenarioPlaceRsp, error) + DeleteScenarioPlace(context.Context, *DeleteScenarioPlaceReq) (*DeleteScenarioPlaceRsp, error) mustEmbedUnimplementedEveningDetectiveServerServer() } @@ -274,6 +378,30 @@ func (UnimplementedEveningDetectiveServerServer) UploadFile(context.Context, *Up func (UnimplementedEveningDetectiveServerServer) DownloadFile(context.Context, *DownloadFileReq) (*httpbody.HttpBody, error) { return nil, status.Error(codes.Unimplemented, "method DownloadFile not implemented") } +func (UnimplementedEveningDetectiveServerServer) AddScenario(context.Context, *AddScenarioReq) (*AddScenarioRsp, error) { + return nil, status.Error(codes.Unimplemented, "method AddScenario not implemented") +} +func (UnimplementedEveningDetectiveServerServer) GetMyScenarios(context.Context, *GetMyScenariosReq) (*GetMyScenariosRsp, error) { + return nil, status.Error(codes.Unimplemented, "method GetMyScenarios not implemented") +} +func (UnimplementedEveningDetectiveServerServer) GetScenario(context.Context, *GetScenarioReq) (*GetScenarioRsp, error) { + return nil, status.Error(codes.Unimplemented, "method GetScenario not implemented") +} +func (UnimplementedEveningDetectiveServerServer) UpdateScenario(context.Context, *UpdateScenarioReq) (*UpdateScenarioRsp, error) { + return nil, status.Error(codes.Unimplemented, "method UpdateScenario not implemented") +} +func (UnimplementedEveningDetectiveServerServer) DeleteScenario(context.Context, *DeleteScenarioReq) (*DeleteScenarioRsp, error) { + return nil, status.Error(codes.Unimplemented, "method DeleteScenario not implemented") +} +func (UnimplementedEveningDetectiveServerServer) AddScenarioPlace(context.Context, *AddScenarioPlaceReq) (*AddScenarioPlaceRsp, error) { + return nil, status.Error(codes.Unimplemented, "method AddScenarioPlace not implemented") +} +func (UnimplementedEveningDetectiveServerServer) UpdateScenarioPlace(context.Context, *UpdateScenarioPlaceReq) (*UpdateScenarioPlaceRsp, error) { + return nil, status.Error(codes.Unimplemented, "method UpdateScenarioPlace not implemented") +} +func (UnimplementedEveningDetectiveServerServer) DeleteScenarioPlace(context.Context, *DeleteScenarioPlaceReq) (*DeleteScenarioPlaceRsp, error) { + return nil, status.Error(codes.Unimplemented, "method DeleteScenarioPlace not implemented") +} func (UnimplementedEveningDetectiveServerServer) mustEmbedUnimplementedEveningDetectiveServerServer() { } func (UnimplementedEveningDetectiveServerServer) testEmbeddedByValue() {} @@ -548,6 +676,150 @@ func _EveningDetectiveServer_DownloadFile_Handler(srv interface{}, ctx context.C return interceptor(ctx, in, info, handler) } +func _EveningDetectiveServer_AddScenario_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddScenarioReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EveningDetectiveServerServer).AddScenario(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EveningDetectiveServer_AddScenario_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EveningDetectiveServerServer).AddScenario(ctx, req.(*AddScenarioReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _EveningDetectiveServer_GetMyScenarios_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetMyScenariosReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EveningDetectiveServerServer).GetMyScenarios(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EveningDetectiveServer_GetMyScenarios_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EveningDetectiveServerServer).GetMyScenarios(ctx, req.(*GetMyScenariosReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _EveningDetectiveServer_GetScenario_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetScenarioReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EveningDetectiveServerServer).GetScenario(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EveningDetectiveServer_GetScenario_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EveningDetectiveServerServer).GetScenario(ctx, req.(*GetScenarioReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _EveningDetectiveServer_UpdateScenario_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateScenarioReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EveningDetectiveServerServer).UpdateScenario(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EveningDetectiveServer_UpdateScenario_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EveningDetectiveServerServer).UpdateScenario(ctx, req.(*UpdateScenarioReq)) + } + 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 { + return nil, err + } + if interceptor == nil { + return srv.(EveningDetectiveServerServer).DeleteScenario(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EveningDetectiveServer_DeleteScenario_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EveningDetectiveServerServer).DeleteScenario(ctx, req.(*DeleteScenarioReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _EveningDetectiveServer_AddScenarioPlace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddScenarioPlaceReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EveningDetectiveServerServer).AddScenarioPlace(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EveningDetectiveServer_AddScenarioPlace_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EveningDetectiveServerServer).AddScenarioPlace(ctx, req.(*AddScenarioPlaceReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _EveningDetectiveServer_UpdateScenarioPlace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateScenarioPlaceReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EveningDetectiveServerServer).UpdateScenarioPlace(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EveningDetectiveServer_UpdateScenarioPlace_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EveningDetectiveServerServer).UpdateScenarioPlace(ctx, req.(*UpdateScenarioPlaceReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _EveningDetectiveServer_DeleteScenarioPlace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteScenarioPlaceReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EveningDetectiveServerServer).DeleteScenarioPlace(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EveningDetectiveServer_DeleteScenarioPlace_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EveningDetectiveServerServer).DeleteScenarioPlace(ctx, req.(*DeleteScenarioPlaceReq)) + } + return interceptor(ctx, in, info, handler) +} + // EveningDetectiveServer_ServiceDesc is the grpc.ServiceDesc for EveningDetectiveServer service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -611,6 +883,38 @@ var EveningDetectiveServer_ServiceDesc = grpc.ServiceDesc{ MethodName: "DownloadFile", Handler: _EveningDetectiveServer_DownloadFile_Handler, }, + { + MethodName: "AddScenario", + Handler: _EveningDetectiveServer_AddScenario_Handler, + }, + { + MethodName: "GetMyScenarios", + Handler: _EveningDetectiveServer_GetMyScenarios_Handler, + }, + { + MethodName: "GetScenario", + Handler: _EveningDetectiveServer_GetScenario_Handler, + }, + { + MethodName: "UpdateScenario", + Handler: _EveningDetectiveServer_UpdateScenario_Handler, + }, + { + MethodName: "DeleteScenario", + Handler: _EveningDetectiveServer_DeleteScenario_Handler, + }, + { + MethodName: "AddScenarioPlace", + Handler: _EveningDetectiveServer_AddScenarioPlace_Handler, + }, + { + MethodName: "UpdateScenarioPlace", + Handler: _EveningDetectiveServer_UpdateScenarioPlace_Handler, + }, + { + MethodName: "DeleteScenarioPlace", + Handler: _EveningDetectiveServer_DeleteScenarioPlace_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "main.proto",