add games operations

This commit is contained in:
2026-07-26 22:38:33 +07:00
parent cf32a6114f
commit 6fc19833d3
24 changed files with 2430 additions and 96 deletions
+116 -1
View File
@@ -323,6 +323,58 @@ service EveningDetectiveServer {
summary: "Удалить точку сценария"; summary: "Удалить точку сценария";
}; };
} }
rpc AddGame(AddGameReq) returns (AddGameRsp) {
option (google.api.http) = {
post: "/api/games"
body: "*"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags : "Игры";
summary: "Создать игру";
};
}
rpc GetGames(GetGamesReq) returns (GetGamesRsp) {
option (google.api.http) = {
get: "/api/games"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags : "Игры";
summary: "Получить игры";
};
}
rpc GetGame(GetGameReq) returns (GetGameRsp) {
option (google.api.http) = {
get: "/api/games/{id}"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags : "Игры";
summary: "Получить игру";
};
}
rpc UpdateGame(UpdateGameReq) returns (UpdateGameRsp) {
option (google.api.http) = {
put : "/api/games/{id}"
body: "*"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags : "Игры";
summary: "Обновить игру";
};
}
rpc DeleteGame(DeleteGameReq) returns (DeleteGameRsp) {
option (google.api.http) = {
delete: "/api/games/{id}"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags : "Игры";
summary: "Удалить игру";
};
}
} }
message PingReq {} message PingReq {}
@@ -582,4 +634,67 @@ message DeleteScenarioPlaceReq {
message DeleteScenarioPlaceRsp { message DeleteScenarioPlaceRsp {
string error = 1; string error = 1;
} }
message AddGameReq {
string name = 1;
string description = 2;
google.protobuf.Timestamp start_at = 3;
int32 scenario_id = 4;
}
message AddGameRsp {
string error = 1;
int32 id = 2;
}
message GetGamesReq {}
message GetGamesRsp {
string error = 1;
repeated Game games = 2;
}
message Game {
int32 id = 1;
string name = 2;
string description = 3;
google.protobuf.Timestamp start_at = 4;
string status = 5;
Scenario scenario = 6;
repeated Team teams = 7;
}
message Team {
int32 id = 1;
string name = 2;
}
message GetGameReq {
int32 id = 1;
}
message GetGameRsp {
string error = 1;
Game game = 2;
}
message UpdateGameReq {
int32 id = 1;
string name = 2;
string description = 3;
google.protobuf.Timestamp start_at = 4;
int32 scenario_id = 5;
}
message UpdateGameRsp {
string error = 1;
}
message DeleteGameReq {
int32 id = 1;
}
message DeleteGameRsp {
string error = 1;
}
+12
View File
@@ -8,10 +8,13 @@ import (
"evening_detective_server/internal/modules/file_storage" "evening_detective_server/internal/modules/file_storage"
"evening_detective_server/internal/modules/password_generator" "evening_detective_server/internal/modules/password_generator"
"evening_detective_server/internal/modules/processor_jwt" "evening_detective_server/internal/modules/processor_jwt"
"evening_detective_server/internal/repos/games_repo"
"evening_detective_server/internal/repos/refresh_tokens_repo" "evening_detective_server/internal/repos/refresh_tokens_repo"
"evening_detective_server/internal/repos/scenarios_repo" "evening_detective_server/internal/repos/scenarios_repo"
"evening_detective_server/internal/repos/teams_repo"
"evening_detective_server/internal/repos/users_repo" "evening_detective_server/internal/repos/users_repo"
"evening_detective_server/internal/services/file_service" "evening_detective_server/internal/services/file_service"
"evening_detective_server/internal/services/game_service"
"evening_detective_server/internal/services/scenarios_service" "evening_detective_server/internal/services/scenarios_service"
"evening_detective_server/internal/services/ui_service" "evening_detective_server/internal/services/ui_service"
"evening_detective_server/internal/services/users_service" "evening_detective_server/internal/services/users_service"
@@ -76,6 +79,14 @@ func main() {
scenariosRepo, scenariosRepo,
os.Getenv("FILE_PREFIX_DOMAIN"), os.Getenv("FILE_PREFIX_DOMAIN"),
) )
gameRepo := games_repo.NewGamesRepo(dbpool)
teamRepo := teams_repo.NewTeamsRepo(dbpool)
gameService := game_service.NewGameService(
gameRepo,
teamRepo,
scenariosRepo,
os.Getenv("FILE_PREFIX_DOMAIN"),
)
// Create a listener on TCP port // Create a listener on TCP port
lis, err := net.Listen("tcp", ":8080") lis, err := net.Listen("tcp", ":8080")
@@ -110,6 +121,7 @@ func main() {
uiService, uiService,
fileService, fileService,
scenarioService, scenarioService,
gameService,
), ),
) )
@@ -255,6 +255,160 @@
] ]
} }
}, },
"/api/games": {
"get": {
"summary": "Получить игры",
"operationId": "EveningDetectiveServer_GetGames",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/evening_detective_serverGetGamesRsp"
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"tags": [
"Игры"
]
},
"post": {
"summary": "Создать игру",
"operationId": "EveningDetectiveServer_AddGame",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/evening_detective_serverAddGameRsp"
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/evening_detective_serverAddGameReq"
}
}
],
"tags": [
"Игры"
]
}
},
"/api/games/{id}": {
"get": {
"summary": "Получить игру",
"operationId": "EveningDetectiveServer_GetGame",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/evening_detective_serverGetGameRsp"
}
},
"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_DeleteGame",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/evening_detective_serverDeleteGameRsp"
}
},
"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_UpdateGame",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/evening_detective_serverUpdateGameRsp"
}
},
"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/EveningDetectiveServerUpdateGameBody"
}
}
],
"tags": [
"Игры"
]
}
},
"/api/my-scenarios": { "/api/my-scenarios": {
"get": { "get": {
"summary": "Получить свои сценарии", "summary": "Получить свои сценарии",
@@ -922,6 +1076,25 @@
"EveningDetectiveServerPublicScenarioBody": { "EveningDetectiveServerPublicScenarioBody": {
"type": "object" "type": "object"
}, },
"EveningDetectiveServerUpdateGameBody": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"startAt": {
"type": "string",
"format": "date-time"
},
"scenarioId": {
"type": "integer",
"format": "int32"
}
}
},
"EveningDetectiveServerUpdateScenarioBody": { "EveningDetectiveServerUpdateScenarioBody": {
"type": "object", "type": "object",
"properties": { "properties": {
@@ -967,6 +1140,37 @@
}, },
"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." "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_serverAddGameReq": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"startAt": {
"type": "string",
"format": "date-time"
},
"scenarioId": {
"type": "integer",
"format": "int32"
}
}
},
"evening_detective_serverAddGameRsp": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"id": {
"type": "integer",
"format": "int32"
}
}
},
"evening_detective_serverAddScenarioPlaceRsp": { "evening_detective_serverAddScenarioPlaceRsp": {
"type": "object", "type": "object",
"properties": { "properties": {
@@ -1014,6 +1218,14 @@
} }
} }
}, },
"evening_detective_serverDeleteGameRsp": {
"type": "object",
"properties": {
"error": {
"type": "string"
}
}
},
"evening_detective_serverDeleteScenarioPlaceRsp": { "evening_detective_serverDeleteScenarioPlaceRsp": {
"type": "object", "type": "object",
"properties": { "properties": {
@@ -1072,6 +1284,64 @@
} }
} }
}, },
"evening_detective_serverGame": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"startAt": {
"type": "string",
"format": "date-time"
},
"status": {
"type": "string"
},
"scenario": {
"$ref": "#/definitions/evening_detective_serverScenario"
},
"teams": {
"type": "array",
"items": {
"type": "object",
"$ref": "#/definitions/evening_detective_serverTeam"
}
}
}
},
"evening_detective_serverGetGameRsp": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"game": {
"$ref": "#/definitions/evening_detective_serverGame"
}
}
},
"evening_detective_serverGetGamesRsp": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"games": {
"type": "array",
"items": {
"type": "object",
"$ref": "#/definitions/evening_detective_serverGame"
}
}
}
},
"evening_detective_serverGetMeRsp": { "evening_detective_serverGetMeRsp": {
"type": "object", "type": "object",
"properties": { "properties": {
@@ -1357,6 +1627,26 @@
} }
} }
}, },
"evening_detective_serverTeam": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"name": {
"type": "string"
}
}
},
"evening_detective_serverUpdateGameRsp": {
"type": "object",
"properties": {
"error": {
"type": "string"
}
}
},
"evening_detective_serverUpdateScenarioPlaceRsp": { "evening_detective_serverUpdateScenarioPlaceRsp": {
"type": "object", "type": "object",
"properties": { "properties": {
+32
View File
@@ -0,0 +1,32 @@
package app
import (
"evening_detective_server/internal/services/game_service"
"evening_detective_server/proto"
"google.golang.org/protobuf/types/known/timestamppb"
)
func mapGame(
o *game_service.Game,
) *proto.Game {
return &proto.Game{
Id: int32(o.ID),
Name: o.Name,
Description: o.Description,
StartAt: timestamppb.New(o.StartAt),
Status: o.Status,
Scenario: mapScenario(o.Scenario),
Teams: mapTeams(o.Teams),
}
}
func mapGames(
o []*game_service.Game,
) []*proto.Game {
res := make([]*proto.Game, 0, len(o))
for _, item := range o {
res = append(res, mapGame(item))
}
return res
}
+115 -4
View File
@@ -6,6 +6,7 @@ import (
"evening_detective_server/internal/modules/processor_jwt" "evening_detective_server/internal/modules/processor_jwt"
"evening_detective_server/internal/modules/roles" "evening_detective_server/internal/modules/roles"
"evening_detective_server/internal/services/file_service" "evening_detective_server/internal/services/file_service"
"evening_detective_server/internal/services/game_service"
"evening_detective_server/internal/services/scenarios_service" "evening_detective_server/internal/services/scenarios_service"
"evening_detective_server/internal/services/ui_service" "evening_detective_server/internal/services/ui_service"
"evening_detective_server/internal/services/users_service" "evening_detective_server/internal/services/users_service"
@@ -23,6 +24,7 @@ type server struct {
uiService *ui_service.UiService uiService *ui_service.UiService
fileService *file_service.FileService fileService *file_service.FileService
scenarioService *scenarios_service.ScenarioService scenarioService *scenarios_service.ScenarioService
gameService *game_service.GameService
} }
func NewServer( func NewServer(
@@ -30,12 +32,14 @@ func NewServer(
uiService *ui_service.UiService, uiService *ui_service.UiService,
fileService *file_service.FileService, fileService *file_service.FileService,
scenarioService *scenarios_service.ScenarioService, scenarioService *scenarios_service.ScenarioService,
gameService *game_service.GameService,
) proto.EveningDetectiveServerServer { ) proto.EveningDetectiveServerServer {
return &server{ return &server{
usersService: usersService, usersService: usersService,
uiService: uiService, uiService: uiService,
fileService: fileService, fileService: fileService,
scenarioService: scenarioService, scenarioService: scenarioService,
gameService: gameService,
} }
} }
@@ -167,10 +171,7 @@ func (s *server) DeleteUserRole(ctx context.Context, req *proto.DeleteUserRoleRe
return &proto.DeleteUserRoleRsp{}, nil return &proto.DeleteUserRoleRsp{}, nil
} }
func (s *server) GetPermissions( func (s *server) GetPermissions(ctx context.Context, req *proto.GetPermissionsReq) (*proto.GetPermissionsRsp, error) {
ctx context.Context,
req *proto.GetPermissionsReq,
) (*proto.GetPermissionsRsp, error) {
claims := ctx.Value("claims").(*processor_jwt.JWTClaims) claims := ctx.Value("claims").(*processor_jwt.JWTClaims)
permissions := s.uiService.GetPermissions(claims.Roles) permissions := s.uiService.GetPermissions(claims.Roles)
return &proto.GetPermissionsRsp{ return &proto.GetPermissionsRsp{
@@ -427,3 +428,113 @@ func (s *server) DeleteScenarioPlace(ctx context.Context, req *proto.DeleteScena
return &proto.DeleteScenarioPlaceRsp{}, nil return &proto.DeleteScenarioPlaceRsp{}, nil
} }
func (s *server) AddGame(ctx context.Context, req *proto.AddGameReq) (*proto.AddGameRsp, error) {
claims := ctx.Value("claims").(*processor_jwt.JWTClaims)
if !roles.HasRole(claims, roles.Organizer) {
return nil, status.Errorf(codes.PermissionDenied, "permission denied")
}
if req.StartAt == nil {
return nil, status.Errorf(codes.InvalidArgument, "startAt must not be nil")
}
id, err := s.gameService.AddGame(
ctx,
req.Name,
req.Description,
req.StartAt.AsTime(),
req.ScenarioId,
)
if err != nil {
return &proto.AddGameRsp{
Error: err.Error(),
}, nil
}
return &proto.AddGameRsp{
Id: int32(id),
}, nil
}
func (s *server) DeleteGame(ctx context.Context, req *proto.DeleteGameReq) (*proto.DeleteGameRsp, error) {
claims := ctx.Value("claims").(*processor_jwt.JWTClaims)
if !roles.HasRole(claims, roles.Organizer) {
return nil, status.Errorf(codes.PermissionDenied, "permission denied")
}
err := s.gameService.DeleteGame(
ctx,
int(req.Id),
)
if err != nil {
return &proto.DeleteGameRsp{
Error: err.Error(),
}, nil
}
return &proto.DeleteGameRsp{}, nil
}
func (s *server) GetGame(ctx context.Context, req *proto.GetGameReq) (*proto.GetGameRsp, error) {
claims := ctx.Value("claims").(*processor_jwt.JWTClaims)
if !roles.HasRole(claims, roles.Organizer) {
return nil, status.Errorf(codes.PermissionDenied, "permission denied")
}
game, err := s.gameService.GetGame(ctx, int(req.Id))
if err != nil {
return &proto.GetGameRsp{
Error: err.Error(),
}, nil
}
return &proto.GetGameRsp{
Game: mapGame(game),
}, nil
}
func (s *server) GetGames(ctx context.Context, req *proto.GetGamesReq) (*proto.GetGamesRsp, error) {
claims := ctx.Value("claims").(*processor_jwt.JWTClaims)
if !roles.HasRole(claims, roles.Organizer) {
return nil, status.Errorf(codes.PermissionDenied, "permission denied")
}
games, err := s.gameService.GetGames(ctx)
if err != nil {
return &proto.GetGamesRsp{
Error: err.Error(),
}, nil
}
return &proto.GetGamesRsp{
Games: mapGames(games),
}, nil
}
func (s *server) UpdateGame(ctx context.Context, req *proto.UpdateGameReq) (*proto.UpdateGameRsp, error) {
claims := ctx.Value("claims").(*processor_jwt.JWTClaims)
if !roles.HasRole(claims, roles.Organizer) {
return nil, status.Errorf(codes.PermissionDenied, "permission denied")
}
if req.StartAt == nil {
return nil, status.Errorf(codes.InvalidArgument, "startAt must not be nil")
}
err := s.gameService.UpdateGame(
ctx,
int(req.Id),
req.Name,
req.Description,
req.StartAt.AsTime(),
req.ScenarioId,
)
if err != nil {
return &proto.UpdateGameRsp{
Error: err.Error(),
}, nil
}
return &proto.UpdateGameRsp{}, nil
}
+3
View File
@@ -18,6 +18,9 @@ func mapScenarios(o []*scenarios_service.Scenario) []*proto.Scenario {
} }
func mapScenario(o *scenarios_service.Scenario) *proto.Scenario { func mapScenario(o *scenarios_service.Scenario) *proto.Scenario {
if o == nil {
return nil
}
var publishedAt *timestamppb.Timestamp var publishedAt *timestamppb.Timestamp
if o.PublishedAt != nil { if o.PublishedAt != nil {
publishedAt = timestamppb.New(*o.PublishedAt) publishedAt = timestamppb.New(*o.PublishedAt)
+25
View File
@@ -0,0 +1,25 @@
package app
import (
"evening_detective_server/internal/services/game_service"
"evening_detective_server/proto"
)
func mapTeam(
o *game_service.Team,
) *proto.Team {
return &proto.Team{
Id: int32(o.ID),
Name: o.Name,
}
}
func mapTeams(
o []*game_service.Team,
) []*proto.Team {
res := make([]*proto.Team, 0, len(o))
for _, item := range o {
res = append(res, mapTeam(item))
}
return res
}
@@ -20,6 +20,7 @@ func NewGenerator(length int) IPasswordGenerator {
} }
func (g *generator) Generate() (string, error) { func (g *generator) Generate() (string, error) {
return "1", nil
password := make([]byte, g.length) password := make([]byte, g.length)
for i := range password { for i := range password {
num, err := rand.Int(rand.Reader, big.NewInt(int64(len(charset)))) num, err := rand.Int(rand.Reader, big.NewInt(int64(len(charset))))
+16
View File
@@ -0,0 +1,16 @@
package repos
import (
"time"
)
type Game struct {
ID int
Name string
Description string
StartAt time.Time
Status string
ScenarioId int
Scenario *Scenario
Teams []*Team
}
+179
View File
@@ -0,0 +1,179 @@
package games_repo
import (
"context"
"errors"
"evening_detective_server/internal/repos"
"time"
"github.com/jackc/pgx/v5"
"github.com/jackc/pgx/v5/pgxpool"
)
var (
ErrGameNotFound = errors.New("Игра не найдена")
)
type GamesRepo struct {
pool *pgxpool.Pool
}
func NewGamesRepo(pool *pgxpool.Pool) *GamesRepo {
return &GamesRepo{
pool: pool,
}
}
func (r *GamesRepo) AddGame(
ctx context.Context,
name string,
description string,
startAt time.Time,
scenarioId int32,
) (int, error) {
id := 0
err := r.pool.QueryRow(
ctx,
`INSERT INTO games (name, description, start_at, scenario_id)
VALUES ($1, $2, $3, $4)
RETURNING id`,
name,
description,
startAt,
scenarioId,
).Scan(&id)
if err != nil {
return 0, err
}
return id, nil
}
func (r *GamesRepo) GetGameByID(
ctx context.Context,
id int,
) (*repos.Game, error) {
game := &repos.Game{}
row := r.pool.QueryRow(
ctx,
`SELECT
games.id,
games.name,
games.description,
games.start_at,
games.status,
games.scenario_id
FROM games
WHERE id = $1`,
id,
)
err := row.Scan(
&game.ID,
&game.Name,
&game.Description,
&game.StartAt,
&game.Status,
&game.ScenarioId,
)
if err != nil {
if errors.Is(err, pgx.ErrNoRows) {
return nil, ErrGameNotFound
}
return nil, err
}
return game, nil
}
func (r *GamesRepo) DeleteGameByID(
ctx context.Context,
id int,
) error {
tag, err := r.pool.Exec(
ctx,
`DELETE FROM games
WHERE id = $1`,
id,
)
if err != nil {
return err
}
if tag.RowsAffected() == 0 {
return ErrGameNotFound
}
return nil
}
func (r *GamesRepo) GetGames(
ctx context.Context,
) ([]*repos.Game, error) {
rows, err := r.pool.Query(
ctx,
`SELECT
games.id,
games.name,
games.description,
games.start_at,
games.status
FROM games
ORDER BY created_at DESC`,
)
if err != nil {
return nil, err
}
defer rows.Close()
var games []*repos.Game
for rows.Next() {
game := &repos.Game{}
err := rows.Scan(
&game.ID,
&game.Name,
&game.Description,
&game.StartAt,
&game.Status,
)
if err != nil {
return nil, err
}
games = append(games, game)
}
if err := rows.Err(); err != nil {
return nil, err
}
return games, nil
}
func (r *GamesRepo) UpdateGame(
ctx context.Context,
id int,
name string,
description string,
startAt time.Time,
scenarioId int32,
) error {
tag, err := r.pool.Exec(
ctx,
`UPDATE games
SET
name = $1,
description = $2,
start_at = $3,
scenario_id = $4,
updated_at = NOW()
WHERE id = $5`,
name,
description,
startAt,
scenarioId,
id,
)
if err != nil {
return err
}
if tag.RowsAffected() == 0 {
return ErrGameNotFound
}
return nil
}
+18 -18
View File
@@ -23,13 +23,13 @@ func NewScenariosRepo(pool *pgxpool.Pool) *ScenariosRepo {
} }
} }
func (s *ScenariosRepo) AddScenario( func (r *ScenariosRepo) AddScenario(
ctx context.Context, ctx context.Context,
name string, name string,
authorId int, authorId int,
) (int, error) { ) (int, error) {
id := 0 id := 0
err := s.pool.QueryRow( err := r.pool.QueryRow(
ctx, ctx,
`INSERT INTO scenarios (name, author_id) `INSERT INTO scenarios (name, author_id)
VALUES ($1, $2) VALUES ($1, $2)
@@ -44,11 +44,11 @@ func (s *ScenariosRepo) AddScenario(
return id, nil return id, nil
} }
func (s *ScenariosRepo) GetScenariosByAuthorID( func (r *ScenariosRepo) GetScenariosByAuthorID(
ctx context.Context, ctx context.Context,
authorId int, authorId int,
) ([]*repos.Scenario, error) { ) ([]*repos.Scenario, error) {
rows, err := s.pool.Query( rows, err := r.pool.Query(
ctx, ctx,
`SELECT `SELECT
scenarios.id, scenarios.id,
@@ -103,11 +103,11 @@ func (s *ScenariosRepo) GetScenariosByAuthorID(
return scenarios, nil return scenarios, nil
} }
func (s *ScenariosRepo) GetScenariosByStatus( func (r *ScenariosRepo) GetScenariosByStatus(
ctx context.Context, ctx context.Context,
status string, status string,
) ([]*repos.Scenario, error) { ) ([]*repos.Scenario, error) {
rows, err := s.pool.Query( rows, err := r.pool.Query(
ctx, ctx,
`SELECT `SELECT
scenarios.id, scenarios.id,
@@ -162,14 +162,14 @@ func (s *ScenariosRepo) GetScenariosByStatus(
return scenarios, nil return scenarios, nil
} }
func (s *ScenariosRepo) GetScenarioByID( func (r *ScenariosRepo) GetScenarioByID(
ctx context.Context, ctx context.Context,
id int, id int,
) (*repos.Scenario, error) { ) (*repos.Scenario, error) {
scenario := &repos.Scenario{ scenario := &repos.Scenario{
Author: &repos.User{}, Author: &repos.User{},
} }
row := s.pool.QueryRow( row := r.pool.QueryRow(
ctx, ctx,
`SELECT `SELECT
scenarios.id, scenarios.id,
@@ -213,14 +213,14 @@ func (s *ScenariosRepo) GetScenarioByID(
return scenario, nil return scenario, nil
} }
func (s *ScenariosRepo) UpdateScenarioByID( func (r *ScenariosRepo) UpdateScenarioByID(
ctx context.Context, ctx context.Context,
id int, id int,
name string, name string,
description string, description string,
image string, image string,
) error { ) error {
tag, err := s.pool.Exec( tag, err := r.pool.Exec(
ctx, ctx,
`UPDATE scenarios `UPDATE scenarios
SET SET
@@ -243,12 +243,12 @@ func (s *ScenariosRepo) UpdateScenarioByID(
return nil return nil
} }
func (s *ScenariosRepo) UpdateScenarioStatusByID( func (r *ScenariosRepo) UpdateScenarioStatusByID(
ctx context.Context, ctx context.Context,
id int, id int,
status string, status string,
) error { ) error {
tag, err := s.pool.Exec( tag, err := r.pool.Exec(
ctx, ctx,
`UPDATE scenarios `UPDATE scenarios
SET SET
@@ -268,11 +268,11 @@ func (s *ScenariosRepo) UpdateScenarioStatusByID(
return nil return nil
} }
func (s *ScenariosRepo) DeleteScenarioByID( func (r *ScenariosRepo) DeleteScenarioByID(
ctx context.Context, ctx context.Context,
id int, id int,
) error { ) error {
tag, err := s.pool.Exec( tag, err := r.pool.Exec(
ctx, ctx,
`UPDATE scenarios `UPDATE scenarios
SET SET
@@ -289,12 +289,12 @@ func (s *ScenariosRepo) DeleteScenarioByID(
return nil return nil
} }
func (s *ScenariosRepo) GetStoryByScenarioID( func (r *ScenariosRepo) GetStoryByScenarioID(
ctx context.Context, ctx context.Context,
id int, id int,
) (string, error) { ) (string, error) {
story := "" story := ""
row := s.pool.QueryRow( row := r.pool.QueryRow(
ctx, ctx,
`SELECT `SELECT
scenario scenario
@@ -315,12 +315,12 @@ func (s *ScenariosRepo) GetStoryByScenarioID(
return story, nil return story, nil
} }
func (s *ScenariosRepo) UpdateStoryByScenarioID( func (r *ScenariosRepo) UpdateStoryByScenarioID(
ctx context.Context, ctx context.Context,
id int, id int,
story string, story string,
) error { ) error {
tag, err := s.pool.Exec( tag, err := r.pool.Exec(
ctx, ctx,
`UPDATE scenarios `UPDATE scenarios
SET SET
+7
View File
@@ -0,0 +1,7 @@
package repos
type Team struct {
ID int
Name string
Password string
}
+67
View File
@@ -0,0 +1,67 @@
package teams_repo
import (
"context"
"evening_detective_server/internal/repos"
"github.com/jackc/pgx/v5/pgxpool"
)
type TeamsRepo struct {
pool *pgxpool.Pool
}
func NewTeamsRepo(pool *pgxpool.Pool) *TeamsRepo {
return &TeamsRepo{
pool: pool,
}
}
func (r *TeamsRepo) GetTeamsByGameID(
ctx context.Context,
gameId int,
) ([]*repos.Team, error) {
rows, err := r.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`,
gameId,
)
if err != nil {
return nil, err
}
defer rows.Close()
var teams []*repos.Team
for rows.Next() {
team := &repos.Team{}
err := rows.Scan(
&team.ID,
&team.Name,
&team.Password,
)
if err != nil {
return nil, err
}
teams = append(teams, team)
}
if err := rows.Err(); err != nil {
return nil, err
}
return teams, nil
}
+16
View File
@@ -0,0 +1,16 @@
package game_service
import (
"evening_detective_server/internal/services/scenarios_service"
"time"
)
type Game struct {
ID int
Name string
Description string
StartAt time.Time
Status string
Scenario *scenarios_service.Scenario
Teams []*Team
}
@@ -0,0 +1,32 @@
package game_service
import (
"evening_detective_server/internal/repos"
"evening_detective_server/internal/services/scenarios_service"
)
func mapGame(
o *repos.Game,
domain string,
) *Game {
return &Game{
ID: o.ID,
Name: o.Name,
Description: o.Description,
StartAt: o.StartAt,
Status: o.Status,
Scenario: scenarios_service.MapScenarioLight(o.Scenario, domain),
Teams: mapTeams(o.Teams),
}
}
func mapGames(
o []*repos.Game,
domain string,
) []*Game {
res := make([]*Game, 0, len(o))
for _, item := range o {
res = append(res, mapGame(item, domain))
}
return res
}
+93
View File
@@ -0,0 +1,93 @@
package game_service
import (
"context"
"evening_detective_server/internal/repos/games_repo"
"evening_detective_server/internal/repos/scenarios_repo"
"evening_detective_server/internal/repos/teams_repo"
"time"
)
type GameService struct {
gamesRepo *games_repo.GamesRepo
teamsRepo *teams_repo.TeamsRepo
scenariosRepo *scenarios_repo.ScenariosRepo
domain string
}
func NewGameService(
gamesRepo *games_repo.GamesRepo,
teamsRepo *teams_repo.TeamsRepo,
scenariosRepo *scenarios_repo.ScenariosRepo,
domain string,
) *GameService {
return &GameService{
gamesRepo: gamesRepo,
teamsRepo: teamsRepo,
scenariosRepo: scenariosRepo,
domain: domain,
}
}
func (s *GameService) AddGame(
ctx context.Context,
name string,
description string,
startAt time.Time,
scenarioId int32,
) (int, error) {
id, err := s.gamesRepo.AddGame(ctx, name, description, startAt, scenarioId)
if err != nil {
return 0, err
}
return id, nil
}
func (s *GameService) GetGame(
ctx context.Context,
id int,
) (*Game, error) {
game, err := s.gamesRepo.GetGameByID(ctx, id)
if err != nil {
return nil, err
}
scenario, err := s.scenariosRepo.GetScenarioByID(ctx, game.ScenarioId)
if err != nil {
return nil, err
}
game.Scenario = scenario
teams, err := s.teamsRepo.GetTeamsByGameID(ctx, id)
if err != nil {
return nil, err
}
game.Teams = teams
return mapGame(game, s.domain), nil
}
func (s *GameService) DeleteGame(
ctx context.Context,
id int,
) error {
return s.gamesRepo.DeleteGameByID(ctx, id)
}
func (s *GameService) GetGames(
ctx context.Context,
) ([]*Game, error) {
games, err := s.gamesRepo.GetGames(ctx)
if err != nil {
return nil, err
}
return mapGames(games, s.domain), nil
}
func (s *GameService) UpdateGame(
ctx context.Context,
id int,
name string,
description string,
startAt time.Time,
scenarioId int32,
) error {
return s.gamesRepo.UpdateGame(ctx, id, name, description, startAt, scenarioId)
}
+7
View File
@@ -0,0 +1,7 @@
package game_service
type Team struct {
ID int
Name string
Password string
}
@@ -0,0 +1,23 @@
package game_service
import "evening_detective_server/internal/repos"
func mapTeam(
o *repos.Team,
) *Team {
return &Team{
ID: o.ID,
Name: o.Name,
Password: o.Password,
}
}
func mapTeams(
o []*repos.Team,
) []*Team {
res := make([]*Team, 0, len(o))
for _, item := range o {
res = append(res, mapTeam(item))
}
return res
}
@@ -12,7 +12,7 @@ func mapScenariosLight(
) []*Scenario { ) []*Scenario {
res := make([]*Scenario, 0, len(o)) res := make([]*Scenario, 0, len(o))
for _, item := range o { for _, item := range o {
res = append(res, mapScenarioLight(item, domain)) res = append(res, MapScenarioLight(item, domain))
} }
return res return res
} }
@@ -32,10 +32,13 @@ func mapScenarios(
return res, nil return res, nil
} }
func mapScenarioLight( func MapScenarioLight(
o *repos.Scenario, o *repos.Scenario,
domain string, domain string,
) *Scenario { ) *Scenario {
if o == nil {
return nil
}
return &Scenario{ return &Scenario{
ID: o.ID, ID: o.ID,
Name: o.Name, Name: o.Name,
@@ -55,7 +58,7 @@ func mapScenario(
o *repos.Scenario, o *repos.Scenario,
domain string, domain string,
) (*Scenario, error) { ) (*Scenario, error) {
scenario := mapScenarioLight(o, domain) scenario := MapScenarioLight(o, domain)
story, err := mapStory(o.Scenario, domain) story, err := mapStory(o.Scenario, domain)
if err != nil { if err != nil {
return nil, err return nil, err
@@ -75,7 +75,7 @@ func (s *ScenarioService) GetScenarioByID(
if err != nil { if err != nil {
return nil, err return nil, err
} }
return mapScenarioLight(scenario, s.domain), nil return MapScenarioLight(scenario, s.domain), nil
} }
func (s *ScenarioService) UpdateScenarioByID( func (s *ScenarioService) UpdateScenarioByID(
@@ -6,11 +6,12 @@ CREATE TABLE
description TEXT, description TEXT,
start_at TIMESTAMP NOT NULL, start_at TIMESTAMP NOT NULL,
scenario_id INTEGER NOT NULL, scenario_id INTEGER NOT NULL,
status VARCHAR(50) DEFAULT 'ready', status VARCHAR(50) DEFAULT 'draft',
updated_at TIMESTAMP NOT NULL DEFAULT NOW (),
created_at TIMESTAMP NOT NULL DEFAULT NOW (), created_at TIMESTAMP NOT NULL DEFAULT NOW (),
started_at TIMESTAMP, started_at TIMESTAMP,
ended_at TIMESTAMP, ended_at TIMESTAMP,
CONSTRAINT fk_games_scenario FOREIGN KEY (scenario_id) REFERENCES scenarios (id) ON DELETE RESTRICT CONSTRAINT fk_games_scenario FOREIGN KEY (scenario_id) REFERENCES scenarios (id) ON DELETE RESTRICT
); );
+812 -67
View File
@@ -2825,6 +2825,662 @@ func (x *DeleteScenarioPlaceRsp) GetError() string {
return "" return ""
} }
type AddGameReq struct {
state protoimpl.MessageState `protogen:"open.v1"`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
StartAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=start_at,json=startAt,proto3" json:"start_at,omitempty"`
ScenarioId int32 `protobuf:"varint,4,opt,name=scenario_id,json=scenarioId,proto3" json:"scenario_id,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *AddGameReq) Reset() {
*x = AddGameReq{}
mi := &file_main_proto_msgTypes[56]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AddGameReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AddGameReq) ProtoMessage() {}
func (x *AddGameReq) ProtoReflect() protoreflect.Message {
mi := &file_main_proto_msgTypes[56]
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 AddGameReq.ProtoReflect.Descriptor instead.
func (*AddGameReq) Descriptor() ([]byte, []int) {
return file_main_proto_rawDescGZIP(), []int{56}
}
func (x *AddGameReq) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *AddGameReq) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *AddGameReq) GetStartAt() *timestamppb.Timestamp {
if x != nil {
return x.StartAt
}
return nil
}
func (x *AddGameReq) GetScenarioId() int32 {
if x != nil {
return x.ScenarioId
}
return 0
}
type AddGameRsp 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 *AddGameRsp) Reset() {
*x = AddGameRsp{}
mi := &file_main_proto_msgTypes[57]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AddGameRsp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AddGameRsp) ProtoMessage() {}
func (x *AddGameRsp) ProtoReflect() protoreflect.Message {
mi := &file_main_proto_msgTypes[57]
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 AddGameRsp.ProtoReflect.Descriptor instead.
func (*AddGameRsp) Descriptor() ([]byte, []int) {
return file_main_proto_rawDescGZIP(), []int{57}
}
func (x *AddGameRsp) GetError() string {
if x != nil {
return x.Error
}
return ""
}
func (x *AddGameRsp) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
type GetGamesReq struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GetGamesReq) Reset() {
*x = GetGamesReq{}
mi := &file_main_proto_msgTypes[58]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GetGamesReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetGamesReq) ProtoMessage() {}
func (x *GetGamesReq) ProtoReflect() protoreflect.Message {
mi := &file_main_proto_msgTypes[58]
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 GetGamesReq.ProtoReflect.Descriptor instead.
func (*GetGamesReq) Descriptor() ([]byte, []int) {
return file_main_proto_rawDescGZIP(), []int{58}
}
type GetGamesRsp struct {
state protoimpl.MessageState `protogen:"open.v1"`
Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
Games []*Game `protobuf:"bytes,2,rep,name=games,proto3" json:"games,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GetGamesRsp) Reset() {
*x = GetGamesRsp{}
mi := &file_main_proto_msgTypes[59]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GetGamesRsp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetGamesRsp) ProtoMessage() {}
func (x *GetGamesRsp) ProtoReflect() protoreflect.Message {
mi := &file_main_proto_msgTypes[59]
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 GetGamesRsp.ProtoReflect.Descriptor instead.
func (*GetGamesRsp) Descriptor() ([]byte, []int) {
return file_main_proto_rawDescGZIP(), []int{59}
}
func (x *GetGamesRsp) GetError() string {
if x != nil {
return x.Error
}
return ""
}
func (x *GetGamesRsp) GetGames() []*Game {
if x != nil {
return x.Games
}
return nil
}
type Game 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"`
StartAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=start_at,json=startAt,proto3" json:"start_at,omitempty"`
Status string `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"`
Scenario *Scenario `protobuf:"bytes,6,opt,name=scenario,proto3" json:"scenario,omitempty"`
Teams []*Team `protobuf:"bytes,7,rep,name=teams,proto3" json:"teams,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Game) Reset() {
*x = Game{}
mi := &file_main_proto_msgTypes[60]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Game) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Game) ProtoMessage() {}
func (x *Game) ProtoReflect() protoreflect.Message {
mi := &file_main_proto_msgTypes[60]
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 Game.ProtoReflect.Descriptor instead.
func (*Game) Descriptor() ([]byte, []int) {
return file_main_proto_rawDescGZIP(), []int{60}
}
func (x *Game) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *Game) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Game) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *Game) GetStartAt() *timestamppb.Timestamp {
if x != nil {
return x.StartAt
}
return nil
}
func (x *Game) GetStatus() string {
if x != nil {
return x.Status
}
return ""
}
func (x *Game) GetScenario() *Scenario {
if x != nil {
return x.Scenario
}
return nil
}
func (x *Game) GetTeams() []*Team {
if x != nil {
return x.Teams
}
return nil
}
type Team 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"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Team) Reset() {
*x = Team{}
mi := &file_main_proto_msgTypes[61]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Team) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Team) ProtoMessage() {}
func (x *Team) ProtoReflect() protoreflect.Message {
mi := &file_main_proto_msgTypes[61]
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 Team.ProtoReflect.Descriptor instead.
func (*Team) Descriptor() ([]byte, []int) {
return file_main_proto_rawDescGZIP(), []int{61}
}
func (x *Team) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *Team) GetName() string {
if x != nil {
return x.Name
}
return ""
}
type GetGameReq 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 *GetGameReq) Reset() {
*x = GetGameReq{}
mi := &file_main_proto_msgTypes[62]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GetGameReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetGameReq) ProtoMessage() {}
func (x *GetGameReq) ProtoReflect() protoreflect.Message {
mi := &file_main_proto_msgTypes[62]
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 GetGameReq.ProtoReflect.Descriptor instead.
func (*GetGameReq) Descriptor() ([]byte, []int) {
return file_main_proto_rawDescGZIP(), []int{62}
}
func (x *GetGameReq) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
type GetGameRsp struct {
state protoimpl.MessageState `protogen:"open.v1"`
Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
Game *Game `protobuf:"bytes,2,opt,name=game,proto3" json:"game,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GetGameRsp) Reset() {
*x = GetGameRsp{}
mi := &file_main_proto_msgTypes[63]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GetGameRsp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetGameRsp) ProtoMessage() {}
func (x *GetGameRsp) ProtoReflect() protoreflect.Message {
mi := &file_main_proto_msgTypes[63]
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 GetGameRsp.ProtoReflect.Descriptor instead.
func (*GetGameRsp) Descriptor() ([]byte, []int) {
return file_main_proto_rawDescGZIP(), []int{63}
}
func (x *GetGameRsp) GetError() string {
if x != nil {
return x.Error
}
return ""
}
func (x *GetGameRsp) GetGame() *Game {
if x != nil {
return x.Game
}
return nil
}
type UpdateGameReq 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"`
StartAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=start_at,json=startAt,proto3" json:"start_at,omitempty"`
ScenarioId int32 `protobuf:"varint,5,opt,name=scenario_id,json=scenarioId,proto3" json:"scenario_id,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *UpdateGameReq) Reset() {
*x = UpdateGameReq{}
mi := &file_main_proto_msgTypes[64]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *UpdateGameReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UpdateGameReq) ProtoMessage() {}
func (x *UpdateGameReq) ProtoReflect() protoreflect.Message {
mi := &file_main_proto_msgTypes[64]
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 UpdateGameReq.ProtoReflect.Descriptor instead.
func (*UpdateGameReq) Descriptor() ([]byte, []int) {
return file_main_proto_rawDescGZIP(), []int{64}
}
func (x *UpdateGameReq) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *UpdateGameReq) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *UpdateGameReq) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *UpdateGameReq) GetStartAt() *timestamppb.Timestamp {
if x != nil {
return x.StartAt
}
return nil
}
func (x *UpdateGameReq) GetScenarioId() int32 {
if x != nil {
return x.ScenarioId
}
return 0
}
type UpdateGameRsp 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 *UpdateGameRsp) Reset() {
*x = UpdateGameRsp{}
mi := &file_main_proto_msgTypes[65]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *UpdateGameRsp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UpdateGameRsp) ProtoMessage() {}
func (x *UpdateGameRsp) ProtoReflect() protoreflect.Message {
mi := &file_main_proto_msgTypes[65]
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 UpdateGameRsp.ProtoReflect.Descriptor instead.
func (*UpdateGameRsp) Descriptor() ([]byte, []int) {
return file_main_proto_rawDescGZIP(), []int{65}
}
func (x *UpdateGameRsp) GetError() string {
if x != nil {
return x.Error
}
return ""
}
type DeleteGameReq 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 *DeleteGameReq) Reset() {
*x = DeleteGameReq{}
mi := &file_main_proto_msgTypes[66]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *DeleteGameReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteGameReq) ProtoMessage() {}
func (x *DeleteGameReq) ProtoReflect() protoreflect.Message {
mi := &file_main_proto_msgTypes[66]
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 DeleteGameReq.ProtoReflect.Descriptor instead.
func (*DeleteGameReq) Descriptor() ([]byte, []int) {
return file_main_proto_rawDescGZIP(), []int{66}
}
func (x *DeleteGameReq) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
type DeleteGameRsp 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 *DeleteGameRsp) Reset() {
*x = DeleteGameRsp{}
mi := &file_main_proto_msgTypes[67]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *DeleteGameRsp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteGameRsp) ProtoMessage() {}
func (x *DeleteGameRsp) ProtoReflect() protoreflect.Message {
mi := &file_main_proto_msgTypes[67]
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 DeleteGameRsp.ProtoReflect.Descriptor instead.
func (*DeleteGameRsp) Descriptor() ([]byte, []int) {
return file_main_proto_rawDescGZIP(), []int{67}
}
func (x *DeleteGameRsp) GetError() string {
if x != nil {
return x.Error
}
return ""
}
var File_main_proto protoreflect.FileDescriptor var File_main_proto protoreflect.FileDescriptor
const file_main_proto_rawDesc = "" + const file_main_proto_rawDesc = "" +
@@ -2993,7 +3649,53 @@ const file_main_proto_rawDesc = "" +
"\x02id\x18\x01 \x01(\x05R\x02id\x12\x12\n" + "\x02id\x18\x01 \x01(\x05R\x02id\x12\x12\n" +
"\x04code\x18\x02 \x01(\tR\x04code\".\n" + "\x04code\x18\x02 \x01(\tR\x04code\".\n" +
"\x16DeleteScenarioPlaceRsp\x12\x14\n" + "\x16DeleteScenarioPlaceRsp\x12\x14\n" +
"\x05error\x18\x01 \x01(\tR\x05error2\xc0,\n" + "\x05error\x18\x01 \x01(\tR\x05error\"\x9a\x01\n" +
"\n" +
"AddGameReq\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12 \n" +
"\vdescription\x18\x02 \x01(\tR\vdescription\x125\n" +
"\bstart_at\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\astartAt\x12\x1f\n" +
"\vscenario_id\x18\x04 \x01(\x05R\n" +
"scenarioId\"2\n" +
"\n" +
"AddGameRsp\x12\x14\n" +
"\x05error\x18\x01 \x01(\tR\x05error\x12\x0e\n" +
"\x02id\x18\x02 \x01(\x05R\x02id\"\r\n" +
"\vGetGamesReq\"_\n" +
"\vGetGamesRsp\x12\x14\n" +
"\x05error\x18\x01 \x01(\tR\x05error\x12:\n" +
"\x05games\x18\x02 \x03(\v2$.crabs.evening_detective_server.GameR\x05games\"\x9d\x02\n" +
"\x04Game\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\x125\n" +
"\bstart_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\astartAt\x12\x16\n" +
"\x06status\x18\x05 \x01(\tR\x06status\x12D\n" +
"\bscenario\x18\x06 \x01(\v2(.crabs.evening_detective_server.ScenarioR\bscenario\x12:\n" +
"\x05teams\x18\a \x03(\v2$.crabs.evening_detective_server.TeamR\x05teams\"*\n" +
"\x04Team\x12\x0e\n" +
"\x02id\x18\x01 \x01(\x05R\x02id\x12\x12\n" +
"\x04name\x18\x02 \x01(\tR\x04name\"\x1c\n" +
"\n" +
"GetGameReq\x12\x0e\n" +
"\x02id\x18\x01 \x01(\x05R\x02id\"\\\n" +
"\n" +
"GetGameRsp\x12\x14\n" +
"\x05error\x18\x01 \x01(\tR\x05error\x128\n" +
"\x04game\x18\x02 \x01(\v2$.crabs.evening_detective_server.GameR\x04game\"\xad\x01\n" +
"\rUpdateGameReq\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\x125\n" +
"\bstart_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\astartAt\x12\x1f\n" +
"\vscenario_id\x18\x05 \x01(\x05R\n" +
"scenarioId\"%\n" +
"\rUpdateGameRsp\x12\x14\n" +
"\x05error\x18\x01 \x01(\tR\x05error\"\x1f\n" +
"\rDeleteGameReq\x12\x0e\n" +
"\x02id\x18\x01 \x01(\x05R\x02id\"%\n" +
"\rDeleteGameRsp\x12\x14\n" +
"\x05error\x18\x01 \x01(\tR\x05error2\x863\n" +
"\x16EveningDetectiveServer\x12\xa6\x01\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" + "\x04Ping\x12'.crabs.evening_detective_server.PingReq\x1a'.crabs.evening_detective_server.PingRsp\"L\x92A3\x12)Проверить доступностьb\x06\n" +
"\x04\n" + "\x04\n" +
@@ -3060,7 +3762,21 @@ const file_main_proto_rawDesc = "" +
"\x13UpdateScenarioPlace\x126.crabs.evening_detective_server.UpdateScenarioPlaceReq\x1a6.crabs.evening_detective_server.UpdateScenarioPlaceRsp\"z\x92AK\n" + "\x13UpdateScenarioPlace\x126.crabs.evening_detective_server.UpdateScenarioPlaceReq\x1a6.crabs.evening_detective_server.UpdateScenarioPlaceRsp\"z\x92AK\n" +
"\x1bТочки сценария\x12,Обновить точку сценария\x82\xd3\xe4\x93\x02&:\x01*\x1a!/api/scenarios/{id}/places/{code}\x12\xfc\x01\n" + "\x1bТочки сценария\x12,Обновить точку сценария\x82\xd3\xe4\x93\x02&:\x01*\x1a!/api/scenarios/{id}/places/{code}\x12\xfc\x01\n" +
"\x13DeleteScenarioPlace\x126.crabs.evening_detective_server.DeleteScenarioPlaceReq\x1a6.crabs.evening_detective_server.DeleteScenarioPlaceRsp\"u\x92AI\n" + "\x13DeleteScenarioPlace\x126.crabs.evening_detective_server.DeleteScenarioPlaceReq\x1a6.crabs.evening_detective_server.DeleteScenarioPlaceRsp\"u\x92AI\n" +
"\x1bТочки сценария\x12*Удалить точку сценария\x82\xd3\xe4\x93\x02#*!/api/scenarios/{id}/places/{code}B\xd7\x01\x92A\xc8\x01\x12U\n" + "\x1bТочки сценария\x12*Удалить точку сценария\x82\xd3\xe4\x93\x02#*!/api/scenarios/{id}/places/{code}\x12\x9e\x01\n" +
"\aAddGame\x12*.crabs.evening_detective_server.AddGameReq\x1a*.crabs.evening_detective_server.AddGameRsp\";\x92A#\n" +
"\bИгры\x12\x17Создать игру\x82\xd3\xe4\x93\x02\x0f:\x01*\"\n" +
"/api/games\x12\xa0\x01\n" +
"\bGetGames\x12+.crabs.evening_detective_server.GetGamesReq\x1a+.crabs.evening_detective_server.GetGamesRsp\":\x92A%\n" +
"\bИгры\x12\x19Получить игры\x82\xd3\xe4\x93\x02\f\x12\n" +
"/api/games\x12\xa2\x01\n" +
"\aGetGame\x12*.crabs.evening_detective_server.GetGameReq\x1a*.crabs.evening_detective_server.GetGameRsp\"?\x92A%\n" +
"\bИгры\x12\x19Получить игру\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/games/{id}\x12\xae\x01\n" +
"\n" +
"UpdateGame\x12-.crabs.evening_detective_server.UpdateGameReq\x1a-.crabs.evening_detective_server.UpdateGameRsp\"B\x92A%\n" +
"\bИгры\x12\x19Обновить игру\x82\xd3\xe4\x93\x02\x14:\x01*\x1a\x0f/api/games/{id}\x12\xa9\x01\n" +
"\n" +
"DeleteGame\x12-.crabs.evening_detective_server.DeleteGameReq\x1a-.crabs.evening_detective_server.DeleteGameRsp\"=\x92A#\n" +
"\bИгры\x12\x17Удалить игру\x82\xd3\xe4\x93\x02\x11*\x0f/api/games/{id}B\xd7\x01\x92A\xc8\x01\x12U\n" +
"KДокументация сервиса \"Вечерний детектив\"2\x06v0.1.0Z]\n" + "KДокументация сервиса \"Вечерний детектив\"2\x06v0.1.0Z]\n" +
"[\n" + "[\n" +
"\n" + "\n" +
@@ -3081,7 +3797,7 @@ func file_main_proto_rawDescGZIP() []byte {
return file_main_proto_rawDescData return file_main_proto_rawDescData
} }
var file_main_proto_msgTypes = make([]protoimpl.MessageInfo, 56) var file_main_proto_msgTypes = make([]protoimpl.MessageInfo, 68)
var file_main_proto_goTypes = []any{ var file_main_proto_goTypes = []any{
(*PingReq)(nil), // 0: crabs.evening_detective_server.PingReq (*PingReq)(nil), // 0: crabs.evening_detective_server.PingReq
(*PingRsp)(nil), // 1: crabs.evening_detective_server.PingRsp (*PingRsp)(nil), // 1: crabs.evening_detective_server.PingRsp
@@ -3139,12 +3855,24 @@ var file_main_proto_goTypes = []any{
(*UpdateScenarioPlaceRsp)(nil), // 53: crabs.evening_detective_server.UpdateScenarioPlaceRsp (*UpdateScenarioPlaceRsp)(nil), // 53: crabs.evening_detective_server.UpdateScenarioPlaceRsp
(*DeleteScenarioPlaceReq)(nil), // 54: crabs.evening_detective_server.DeleteScenarioPlaceReq (*DeleteScenarioPlaceReq)(nil), // 54: crabs.evening_detective_server.DeleteScenarioPlaceReq
(*DeleteScenarioPlaceRsp)(nil), // 55: crabs.evening_detective_server.DeleteScenarioPlaceRsp (*DeleteScenarioPlaceRsp)(nil), // 55: crabs.evening_detective_server.DeleteScenarioPlaceRsp
(*timestamppb.Timestamp)(nil), // 56: google.protobuf.Timestamp (*AddGameReq)(nil), // 56: crabs.evening_detective_server.AddGameReq
(*httpbody.HttpBody)(nil), // 57: google.api.HttpBody (*AddGameRsp)(nil), // 57: crabs.evening_detective_server.AddGameRsp
(*GetGamesReq)(nil), // 58: crabs.evening_detective_server.GetGamesReq
(*GetGamesRsp)(nil), // 59: crabs.evening_detective_server.GetGamesRsp
(*Game)(nil), // 60: crabs.evening_detective_server.Game
(*Team)(nil), // 61: crabs.evening_detective_server.Team
(*GetGameReq)(nil), // 62: crabs.evening_detective_server.GetGameReq
(*GetGameRsp)(nil), // 63: crabs.evening_detective_server.GetGameRsp
(*UpdateGameReq)(nil), // 64: crabs.evening_detective_server.UpdateGameReq
(*UpdateGameRsp)(nil), // 65: crabs.evening_detective_server.UpdateGameRsp
(*DeleteGameReq)(nil), // 66: crabs.evening_detective_server.DeleteGameReq
(*DeleteGameRsp)(nil), // 67: crabs.evening_detective_server.DeleteGameRsp
(*timestamppb.Timestamp)(nil), // 68: google.protobuf.Timestamp
(*httpbody.HttpBody)(nil), // 69: google.api.HttpBody
} }
var file_main_proto_depIdxs = []int32{ var file_main_proto_depIdxs = []int32{
14, // 0: crabs.evening_detective_server.GetUsersRsp.users:type_name -> crabs.evening_detective_server.User 14, // 0: crabs.evening_detective_server.GetUsersRsp.users:type_name -> crabs.evening_detective_server.User
56, // 1: crabs.evening_detective_server.User.created_at:type_name -> google.protobuf.Timestamp 68, // 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, // 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 14, // 3: crabs.evening_detective_server.GetMeRsp.user:type_name -> crabs.evening_detective_server.User
36, // 4: crabs.evening_detective_server.GetMyScenariosRsp.scenarios:type_name -> crabs.evening_detective_server.Scenario 36, // 4: crabs.evening_detective_server.GetMyScenariosRsp.scenarios:type_name -> crabs.evening_detective_server.Scenario
@@ -3152,9 +3880,9 @@ var file_main_proto_depIdxs = []int32{
36, // 6: crabs.evening_detective_server.GetScenarioRsp.scenario:type_name -> crabs.evening_detective_server.Scenario 36, // 6: crabs.evening_detective_server.GetScenarioRsp.scenario:type_name -> crabs.evening_detective_server.Scenario
37, // 7: crabs.evening_detective_server.Scenario.story:type_name -> crabs.evening_detective_server.Story 37, // 7: crabs.evening_detective_server.Scenario.story:type_name -> crabs.evening_detective_server.Story
14, // 8: crabs.evening_detective_server.Scenario.author:type_name -> crabs.evening_detective_server.User 14, // 8: crabs.evening_detective_server.Scenario.author:type_name -> crabs.evening_detective_server.User
56, // 9: crabs.evening_detective_server.Scenario.updated_at:type_name -> google.protobuf.Timestamp 68, // 9: crabs.evening_detective_server.Scenario.updated_at:type_name -> google.protobuf.Timestamp
56, // 10: crabs.evening_detective_server.Scenario.created_at:type_name -> google.protobuf.Timestamp 68, // 10: crabs.evening_detective_server.Scenario.created_at:type_name -> google.protobuf.Timestamp
56, // 11: crabs.evening_detective_server.Scenario.published_at:type_name -> google.protobuf.Timestamp 68, // 11: crabs.evening_detective_server.Scenario.published_at:type_name -> google.protobuf.Timestamp
38, // 12: crabs.evening_detective_server.Story.places:type_name -> crabs.evening_detective_server.Place 38, // 12: crabs.evening_detective_server.Story.places:type_name -> crabs.evening_detective_server.Place
39, // 13: crabs.evening_detective_server.Place.applications:type_name -> crabs.evening_detective_server.Application 39, // 13: crabs.evening_detective_server.Place.applications:type_name -> crabs.evening_detective_server.Application
40, // 14: crabs.evening_detective_server.Place.doors:type_name -> crabs.evening_detective_server.Door 40, // 14: crabs.evening_detective_server.Place.doors:type_name -> crabs.evening_detective_server.Door
@@ -3162,63 +3890,80 @@ var file_main_proto_depIdxs = []int32{
41, // 16: crabs.evening_detective_server.Door.keys:type_name -> crabs.evening_detective_server.Key 41, // 16: crabs.evening_detective_server.Door.keys:type_name -> crabs.evening_detective_server.Key
38, // 17: crabs.evening_detective_server.AddScenarioPlaceReq.place:type_name -> crabs.evening_detective_server.Place 38, // 17: crabs.evening_detective_server.AddScenarioPlaceReq.place:type_name -> crabs.evening_detective_server.Place
38, // 18: crabs.evening_detective_server.UpdateScenarioPlaceReq.place:type_name -> crabs.evening_detective_server.Place 38, // 18: crabs.evening_detective_server.UpdateScenarioPlaceReq.place:type_name -> crabs.evening_detective_server.Place
0, // 19: crabs.evening_detective_server.EveningDetectiveServer.Ping:input_type -> crabs.evening_detective_server.PingReq 68, // 19: crabs.evening_detective_server.AddGameReq.start_at:type_name -> google.protobuf.Timestamp
2, // 20: crabs.evening_detective_server.EveningDetectiveServer.Echo:input_type -> crabs.evening_detective_server.EchoReq 60, // 20: crabs.evening_detective_server.GetGamesRsp.games:type_name -> crabs.evening_detective_server.Game
4, // 21: crabs.evening_detective_server.EveningDetectiveServer.Signup:input_type -> crabs.evening_detective_server.SignupReq 68, // 21: crabs.evening_detective_server.Game.start_at:type_name -> google.protobuf.Timestamp
6, // 22: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:input_type -> crabs.evening_detective_server.RefreshPasswordReq 36, // 22: crabs.evening_detective_server.Game.scenario:type_name -> crabs.evening_detective_server.Scenario
8, // 23: crabs.evening_detective_server.EveningDetectiveServer.Login:input_type -> crabs.evening_detective_server.LoginReq 61, // 23: crabs.evening_detective_server.Game.teams:type_name -> crabs.evening_detective_server.Team
10, // 24: crabs.evening_detective_server.EveningDetectiveServer.Refresh:input_type -> crabs.evening_detective_server.RefreshReq 60, // 24: crabs.evening_detective_server.GetGameRsp.game:type_name -> crabs.evening_detective_server.Game
12, // 25: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:input_type -> crabs.evening_detective_server.GetUsersReq 68, // 25: crabs.evening_detective_server.UpdateGameReq.start_at:type_name -> google.protobuf.Timestamp
15, // 26: crabs.evening_detective_server.EveningDetectiveServer.GetUserById:input_type -> crabs.evening_detective_server.GetUserByIdReq 0, // 26: crabs.evening_detective_server.EveningDetectiveServer.Ping:input_type -> crabs.evening_detective_server.PingReq
17, // 27: crabs.evening_detective_server.EveningDetectiveServer.GetMe:input_type -> crabs.evening_detective_server.GetMeReq 2, // 27: crabs.evening_detective_server.EveningDetectiveServer.Echo:input_type -> crabs.evening_detective_server.EchoReq
19, // 28: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:input_type -> crabs.evening_detective_server.AddUserRoleReq 4, // 28: crabs.evening_detective_server.EveningDetectiveServer.Signup:input_type -> crabs.evening_detective_server.SignupReq
21, // 29: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:input_type -> crabs.evening_detective_server.DeleteUserRoleReq 6, // 29: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:input_type -> crabs.evening_detective_server.RefreshPasswordReq
23, // 30: crabs.evening_detective_server.EveningDetectiveServer.GetPermissions:input_type -> crabs.evening_detective_server.GetPermissionsReq 8, // 30: crabs.evening_detective_server.EveningDetectiveServer.Login:input_type -> crabs.evening_detective_server.LoginReq
25, // 31: crabs.evening_detective_server.EveningDetectiveServer.UploadFile:input_type -> crabs.evening_detective_server.UploadFileReq 10, // 31: crabs.evening_detective_server.EveningDetectiveServer.Refresh:input_type -> crabs.evening_detective_server.RefreshReq
27, // 32: crabs.evening_detective_server.EveningDetectiveServer.DownloadFile:input_type -> crabs.evening_detective_server.DownloadFileReq 12, // 32: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:input_type -> crabs.evening_detective_server.GetUsersReq
28, // 33: crabs.evening_detective_server.EveningDetectiveServer.AddScenario:input_type -> crabs.evening_detective_server.AddScenarioReq 15, // 33: crabs.evening_detective_server.EveningDetectiveServer.GetUserById:input_type -> crabs.evening_detective_server.GetUserByIdReq
30, // 34: crabs.evening_detective_server.EveningDetectiveServer.GetMyScenarios:input_type -> crabs.evening_detective_server.GetMyScenariosReq 17, // 34: crabs.evening_detective_server.EveningDetectiveServer.GetMe:input_type -> crabs.evening_detective_server.GetMeReq
32, // 35: crabs.evening_detective_server.EveningDetectiveServer.GetScenariosCatalog:input_type -> crabs.evening_detective_server.GetScenariosCatalogReq 19, // 35: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:input_type -> crabs.evening_detective_server.AddUserRoleReq
34, // 36: crabs.evening_detective_server.EveningDetectiveServer.GetFullScenario:input_type -> crabs.evening_detective_server.GetScenarioReq 21, // 36: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:input_type -> crabs.evening_detective_server.DeleteUserRoleReq
34, // 37: crabs.evening_detective_server.EveningDetectiveServer.GetScenario:input_type -> crabs.evening_detective_server.GetScenarioReq 23, // 37: crabs.evening_detective_server.EveningDetectiveServer.GetPermissions:input_type -> crabs.evening_detective_server.GetPermissionsReq
42, // 38: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenario:input_type -> crabs.evening_detective_server.UpdateScenarioReq 25, // 38: crabs.evening_detective_server.EveningDetectiveServer.UploadFile:input_type -> crabs.evening_detective_server.UploadFileReq
44, // 39: crabs.evening_detective_server.EveningDetectiveServer.PublicScenario:input_type -> crabs.evening_detective_server.PublicScenarioReq 27, // 39: crabs.evening_detective_server.EveningDetectiveServer.DownloadFile:input_type -> crabs.evening_detective_server.DownloadFileReq
46, // 40: crabs.evening_detective_server.EveningDetectiveServer.DraftScenario:input_type -> crabs.evening_detective_server.DraftScenarioReq 28, // 40: crabs.evening_detective_server.EveningDetectiveServer.AddScenario:input_type -> crabs.evening_detective_server.AddScenarioReq
48, // 41: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenario:input_type -> crabs.evening_detective_server.DeleteScenarioReq 30, // 41: crabs.evening_detective_server.EveningDetectiveServer.GetMyScenarios:input_type -> crabs.evening_detective_server.GetMyScenariosReq
50, // 42: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioPlace:input_type -> crabs.evening_detective_server.AddScenarioPlaceReq 32, // 42: crabs.evening_detective_server.EveningDetectiveServer.GetScenariosCatalog:input_type -> crabs.evening_detective_server.GetScenariosCatalogReq
52, // 43: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioPlace:input_type -> crabs.evening_detective_server.UpdateScenarioPlaceReq 34, // 43: crabs.evening_detective_server.EveningDetectiveServer.GetFullScenario:input_type -> crabs.evening_detective_server.GetScenarioReq
54, // 44: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioPlace:input_type -> crabs.evening_detective_server.DeleteScenarioPlaceReq 34, // 44: crabs.evening_detective_server.EveningDetectiveServer.GetScenario:input_type -> crabs.evening_detective_server.GetScenarioReq
1, // 45: crabs.evening_detective_server.EveningDetectiveServer.Ping:output_type -> crabs.evening_detective_server.PingRsp 42, // 45: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenario:input_type -> crabs.evening_detective_server.UpdateScenarioReq
3, // 46: crabs.evening_detective_server.EveningDetectiveServer.Echo:output_type -> crabs.evening_detective_server.EchoRsp 44, // 46: crabs.evening_detective_server.EveningDetectiveServer.PublicScenario:input_type -> crabs.evening_detective_server.PublicScenarioReq
5, // 47: crabs.evening_detective_server.EveningDetectiveServer.Signup:output_type -> crabs.evening_detective_server.SignupRsp 46, // 47: crabs.evening_detective_server.EveningDetectiveServer.DraftScenario:input_type -> crabs.evening_detective_server.DraftScenarioReq
7, // 48: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:output_type -> crabs.evening_detective_server.RefreshPasswordRsp 48, // 48: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenario:input_type -> crabs.evening_detective_server.DeleteScenarioReq
9, // 49: crabs.evening_detective_server.EveningDetectiveServer.Login:output_type -> crabs.evening_detective_server.LoginRsp 50, // 49: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioPlace:input_type -> crabs.evening_detective_server.AddScenarioPlaceReq
11, // 50: crabs.evening_detective_server.EveningDetectiveServer.Refresh:output_type -> crabs.evening_detective_server.RefreshRsp 52, // 50: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioPlace:input_type -> crabs.evening_detective_server.UpdateScenarioPlaceReq
13, // 51: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:output_type -> crabs.evening_detective_server.GetUsersRsp 54, // 51: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioPlace:input_type -> crabs.evening_detective_server.DeleteScenarioPlaceReq
16, // 52: crabs.evening_detective_server.EveningDetectiveServer.GetUserById:output_type -> crabs.evening_detective_server.GetUserByIdRsp 56, // 52: crabs.evening_detective_server.EveningDetectiveServer.AddGame:input_type -> crabs.evening_detective_server.AddGameReq
18, // 53: crabs.evening_detective_server.EveningDetectiveServer.GetMe:output_type -> crabs.evening_detective_server.GetMeRsp 58, // 53: crabs.evening_detective_server.EveningDetectiveServer.GetGames:input_type -> crabs.evening_detective_server.GetGamesReq
20, // 54: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:output_type -> crabs.evening_detective_server.AddUserRoleRsp 62, // 54: crabs.evening_detective_server.EveningDetectiveServer.GetGame:input_type -> crabs.evening_detective_server.GetGameReq
22, // 55: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:output_type -> crabs.evening_detective_server.DeleteUserRoleRsp 64, // 55: crabs.evening_detective_server.EveningDetectiveServer.UpdateGame:input_type -> crabs.evening_detective_server.UpdateGameReq
24, // 56: crabs.evening_detective_server.EveningDetectiveServer.GetPermissions:output_type -> crabs.evening_detective_server.GetPermissionsRsp 66, // 56: crabs.evening_detective_server.EveningDetectiveServer.DeleteGame:input_type -> crabs.evening_detective_server.DeleteGameReq
26, // 57: crabs.evening_detective_server.EveningDetectiveServer.UploadFile:output_type -> crabs.evening_detective_server.UploadFileRsp 1, // 57: crabs.evening_detective_server.EveningDetectiveServer.Ping:output_type -> crabs.evening_detective_server.PingRsp
57, // 58: crabs.evening_detective_server.EveningDetectiveServer.DownloadFile:output_type -> google.api.HttpBody 3, // 58: crabs.evening_detective_server.EveningDetectiveServer.Echo:output_type -> crabs.evening_detective_server.EchoRsp
29, // 59: crabs.evening_detective_server.EveningDetectiveServer.AddScenario:output_type -> crabs.evening_detective_server.AddScenarioRsp 5, // 59: crabs.evening_detective_server.EveningDetectiveServer.Signup:output_type -> crabs.evening_detective_server.SignupRsp
31, // 60: crabs.evening_detective_server.EveningDetectiveServer.GetMyScenarios:output_type -> crabs.evening_detective_server.GetMyScenariosRsp 7, // 60: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:output_type -> crabs.evening_detective_server.RefreshPasswordRsp
33, // 61: crabs.evening_detective_server.EveningDetectiveServer.GetScenariosCatalog:output_type -> crabs.evening_detective_server.GetScenariosCatalogRsp 9, // 61: crabs.evening_detective_server.EveningDetectiveServer.Login:output_type -> crabs.evening_detective_server.LoginRsp
35, // 62: crabs.evening_detective_server.EveningDetectiveServer.GetFullScenario:output_type -> crabs.evening_detective_server.GetScenarioRsp 11, // 62: crabs.evening_detective_server.EveningDetectiveServer.Refresh:output_type -> crabs.evening_detective_server.RefreshRsp
35, // 63: crabs.evening_detective_server.EveningDetectiveServer.GetScenario:output_type -> crabs.evening_detective_server.GetScenarioRsp 13, // 63: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:output_type -> crabs.evening_detective_server.GetUsersRsp
43, // 64: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenario:output_type -> crabs.evening_detective_server.UpdateScenarioRsp 16, // 64: crabs.evening_detective_server.EveningDetectiveServer.GetUserById:output_type -> crabs.evening_detective_server.GetUserByIdRsp
45, // 65: crabs.evening_detective_server.EveningDetectiveServer.PublicScenario:output_type -> crabs.evening_detective_server.PublicScenarioRsp 18, // 65: crabs.evening_detective_server.EveningDetectiveServer.GetMe:output_type -> crabs.evening_detective_server.GetMeRsp
47, // 66: crabs.evening_detective_server.EveningDetectiveServer.DraftScenario:output_type -> crabs.evening_detective_server.DraftScenarioRsp 20, // 66: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:output_type -> crabs.evening_detective_server.AddUserRoleRsp
49, // 67: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenario:output_type -> crabs.evening_detective_server.DeleteScenarioRsp 22, // 67: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:output_type -> crabs.evening_detective_server.DeleteUserRoleRsp
51, // 68: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioPlace:output_type -> crabs.evening_detective_server.AddScenarioPlaceRsp 24, // 68: crabs.evening_detective_server.EveningDetectiveServer.GetPermissions:output_type -> crabs.evening_detective_server.GetPermissionsRsp
53, // 69: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioPlace:output_type -> crabs.evening_detective_server.UpdateScenarioPlaceRsp 26, // 69: crabs.evening_detective_server.EveningDetectiveServer.UploadFile:output_type -> crabs.evening_detective_server.UploadFileRsp
55, // 70: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioPlace:output_type -> crabs.evening_detective_server.DeleteScenarioPlaceRsp 69, // 70: crabs.evening_detective_server.EveningDetectiveServer.DownloadFile:output_type -> google.api.HttpBody
45, // [45:71] is the sub-list for method output_type 29, // 71: crabs.evening_detective_server.EveningDetectiveServer.AddScenario:output_type -> crabs.evening_detective_server.AddScenarioRsp
19, // [19:45] is the sub-list for method input_type 31, // 72: crabs.evening_detective_server.EveningDetectiveServer.GetMyScenarios:output_type -> crabs.evening_detective_server.GetMyScenariosRsp
19, // [19:19] is the sub-list for extension type_name 33, // 73: crabs.evening_detective_server.EveningDetectiveServer.GetScenariosCatalog:output_type -> crabs.evening_detective_server.GetScenariosCatalogRsp
19, // [19:19] is the sub-list for extension extendee 35, // 74: crabs.evening_detective_server.EveningDetectiveServer.GetFullScenario:output_type -> crabs.evening_detective_server.GetScenarioRsp
0, // [0:19] is the sub-list for field type_name 35, // 75: crabs.evening_detective_server.EveningDetectiveServer.GetScenario:output_type -> crabs.evening_detective_server.GetScenarioRsp
43, // 76: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenario:output_type -> crabs.evening_detective_server.UpdateScenarioRsp
45, // 77: crabs.evening_detective_server.EveningDetectiveServer.PublicScenario:output_type -> crabs.evening_detective_server.PublicScenarioRsp
47, // 78: crabs.evening_detective_server.EveningDetectiveServer.DraftScenario:output_type -> crabs.evening_detective_server.DraftScenarioRsp
49, // 79: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenario:output_type -> crabs.evening_detective_server.DeleteScenarioRsp
51, // 80: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioPlace:output_type -> crabs.evening_detective_server.AddScenarioPlaceRsp
53, // 81: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioPlace:output_type -> crabs.evening_detective_server.UpdateScenarioPlaceRsp
55, // 82: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioPlace:output_type -> crabs.evening_detective_server.DeleteScenarioPlaceRsp
57, // 83: crabs.evening_detective_server.EveningDetectiveServer.AddGame:output_type -> crabs.evening_detective_server.AddGameRsp
59, // 84: crabs.evening_detective_server.EveningDetectiveServer.GetGames:output_type -> crabs.evening_detective_server.GetGamesRsp
63, // 85: crabs.evening_detective_server.EveningDetectiveServer.GetGame:output_type -> crabs.evening_detective_server.GetGameRsp
65, // 86: crabs.evening_detective_server.EveningDetectiveServer.UpdateGame:output_type -> crabs.evening_detective_server.UpdateGameRsp
67, // 87: crabs.evening_detective_server.EveningDetectiveServer.DeleteGame:output_type -> crabs.evening_detective_server.DeleteGameRsp
57, // [57:88] is the sub-list for method output_type
26, // [26:57] is the sub-list for method input_type
26, // [26:26] is the sub-list for extension type_name
26, // [26:26] is the sub-list for extension extendee
0, // [0:26] is the sub-list for field type_name
} }
func init() { file_main_proto_init() } func init() { file_main_proto_init() }
@@ -3233,7 +3978,7 @@ func file_main_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_main_proto_rawDesc), len(file_main_proto_rawDesc)), RawDescriptor: unsafe.Slice(unsafe.StringData(file_main_proto_rawDesc), len(file_main_proto_rawDesc)),
NumEnums: 0, NumEnums: 0,
NumMessages: 56, NumMessages: 68,
NumExtensions: 0, NumExtensions: 0,
NumServices: 1, NumServices: 1,
}, },
+366
View File
@@ -939,6 +939,177 @@ func local_request_EveningDetectiveServer_DeleteScenarioPlace_0(ctx context.Cont
return msg, metadata, err return msg, metadata, err
} }
func request_EveningDetectiveServer_AddGame_0(ctx context.Context, marshaler runtime.Marshaler, client EveningDetectiveServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var (
protoReq AddGameReq
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.AddGame(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
}
func local_request_EveningDetectiveServer_AddGame_0(ctx context.Context, marshaler runtime.Marshaler, server EveningDetectiveServerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var (
protoReq AddGameReq
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.AddGame(ctx, &protoReq)
return msg, metadata, err
}
func request_EveningDetectiveServer_GetGames_0(ctx context.Context, marshaler runtime.Marshaler, client EveningDetectiveServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var (
protoReq GetGamesReq
metadata runtime.ServerMetadata
)
if req.Body != nil {
_, _ = io.Copy(io.Discard, req.Body)
}
msg, err := client.GetGames(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
}
func local_request_EveningDetectiveServer_GetGames_0(ctx context.Context, marshaler runtime.Marshaler, server EveningDetectiveServerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var (
protoReq GetGamesReq
metadata runtime.ServerMetadata
)
msg, err := server.GetGames(ctx, &protoReq)
return msg, metadata, err
}
func request_EveningDetectiveServer_GetGame_0(ctx context.Context, marshaler runtime.Marshaler, client EveningDetectiveServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var (
protoReq GetGameReq
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.GetGame(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
}
func local_request_EveningDetectiveServer_GetGame_0(ctx context.Context, marshaler runtime.Marshaler, server EveningDetectiveServerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var (
protoReq GetGameReq
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.GetGame(ctx, &protoReq)
return msg, metadata, err
}
func request_EveningDetectiveServer_UpdateGame_0(ctx context.Context, marshaler runtime.Marshaler, client EveningDetectiveServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var (
protoReq UpdateGameReq
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.UpdateGame(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
}
func local_request_EveningDetectiveServer_UpdateGame_0(ctx context.Context, marshaler runtime.Marshaler, server EveningDetectiveServerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var (
protoReq UpdateGameReq
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.UpdateGame(ctx, &protoReq)
return msg, metadata, err
}
func request_EveningDetectiveServer_DeleteGame_0(ctx context.Context, marshaler runtime.Marshaler, client EveningDetectiveServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var (
protoReq DeleteGameReq
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.DeleteGame(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
}
func local_request_EveningDetectiveServer_DeleteGame_0(ctx context.Context, marshaler runtime.Marshaler, server EveningDetectiveServerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var (
protoReq DeleteGameReq
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.DeleteGame(ctx, &protoReq)
return msg, metadata, err
}
// RegisterEveningDetectiveServerHandlerServer registers the http handlers for service EveningDetectiveServer to "mux". // RegisterEveningDetectiveServerHandlerServer registers the http handlers for service EveningDetectiveServer to "mux".
// UnaryRPC :call EveningDetectiveServerServer directly. // UnaryRPC :call EveningDetectiveServerServer directly.
// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
@@ -1465,6 +1636,106 @@ func RegisterEveningDetectiveServerHandlerServer(ctx context.Context, mux *runti
} }
forward_EveningDetectiveServer_DeleteScenarioPlace_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) forward_EveningDetectiveServer_DeleteScenarioPlace_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
}) })
mux.Handle(http.MethodPost, pattern_EveningDetectiveServer_AddGame_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/AddGame", runtime.WithHTTPPathPattern("/api/games"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := local_request_EveningDetectiveServer_AddGame_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_AddGame_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle(http.MethodGet, pattern_EveningDetectiveServer_GetGames_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/GetGames", runtime.WithHTTPPathPattern("/api/games"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := local_request_EveningDetectiveServer_GetGames_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_GetGames_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle(http.MethodGet, pattern_EveningDetectiveServer_GetGame_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/GetGame", runtime.WithHTTPPathPattern("/api/games/{id}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := local_request_EveningDetectiveServer_GetGame_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_GetGame_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle(http.MethodPut, pattern_EveningDetectiveServer_UpdateGame_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/UpdateGame", runtime.WithHTTPPathPattern("/api/games/{id}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := local_request_EveningDetectiveServer_UpdateGame_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_UpdateGame_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle(http.MethodDelete, pattern_EveningDetectiveServer_DeleteGame_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/DeleteGame", runtime.WithHTTPPathPattern("/api/games/{id}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := local_request_EveningDetectiveServer_DeleteGame_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_DeleteGame_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
return nil return nil
} }
@@ -1947,6 +2218,91 @@ func RegisterEveningDetectiveServerHandlerClient(ctx context.Context, mux *runti
} }
forward_EveningDetectiveServer_DeleteScenarioPlace_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) forward_EveningDetectiveServer_DeleteScenarioPlace_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
}) })
mux.Handle(http.MethodPost, pattern_EveningDetectiveServer_AddGame_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/AddGame", runtime.WithHTTPPathPattern("/api/games"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := request_EveningDetectiveServer_AddGame_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_AddGame_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle(http.MethodGet, pattern_EveningDetectiveServer_GetGames_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/GetGames", runtime.WithHTTPPathPattern("/api/games"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := request_EveningDetectiveServer_GetGames_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_GetGames_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle(http.MethodGet, pattern_EveningDetectiveServer_GetGame_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/GetGame", runtime.WithHTTPPathPattern("/api/games/{id}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := request_EveningDetectiveServer_GetGame_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_GetGame_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle(http.MethodPut, pattern_EveningDetectiveServer_UpdateGame_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/UpdateGame", runtime.WithHTTPPathPattern("/api/games/{id}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := request_EveningDetectiveServer_UpdateGame_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_UpdateGame_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle(http.MethodDelete, pattern_EveningDetectiveServer_DeleteGame_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/DeleteGame", runtime.WithHTTPPathPattern("/api/games/{id}"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := request_EveningDetectiveServer_DeleteGame_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_DeleteGame_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
return nil return nil
} }
@@ -1977,6 +2333,11 @@ var (
pattern_EveningDetectiveServer_AddScenarioPlace_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"api", "scenarios", "id", "places"}, "")) pattern_EveningDetectiveServer_AddScenarioPlace_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"api", "scenarios", "id", "places"}, ""))
pattern_EveningDetectiveServer_UpdateScenarioPlace_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "scenarios", "id", "places", "code"}, "")) pattern_EveningDetectiveServer_UpdateScenarioPlace_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "scenarios", "id", "places", "code"}, ""))
pattern_EveningDetectiveServer_DeleteScenarioPlace_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "scenarios", "id", "places", "code"}, "")) pattern_EveningDetectiveServer_DeleteScenarioPlace_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "scenarios", "id", "places", "code"}, ""))
pattern_EveningDetectiveServer_AddGame_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"api", "games"}, ""))
pattern_EveningDetectiveServer_GetGames_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"api", "games"}, ""))
pattern_EveningDetectiveServer_GetGame_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2}, []string{"api", "games", "id"}, ""))
pattern_EveningDetectiveServer_UpdateGame_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2}, []string{"api", "games", "id"}, ""))
pattern_EveningDetectiveServer_DeleteGame_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2}, []string{"api", "games", "id"}, ""))
) )
var ( var (
@@ -2006,4 +2367,9 @@ var (
forward_EveningDetectiveServer_AddScenarioPlace_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_AddScenarioPlace_0 = runtime.ForwardResponseMessage
forward_EveningDetectiveServer_UpdateScenarioPlace_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_UpdateScenarioPlace_0 = runtime.ForwardResponseMessage
forward_EveningDetectiveServer_DeleteScenarioPlace_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_DeleteScenarioPlace_0 = runtime.ForwardResponseMessage
forward_EveningDetectiveServer_AddGame_0 = runtime.ForwardResponseMessage
forward_EveningDetectiveServer_GetGames_0 = runtime.ForwardResponseMessage
forward_EveningDetectiveServer_GetGame_0 = runtime.ForwardResponseMessage
forward_EveningDetectiveServer_UpdateGame_0 = runtime.ForwardResponseMessage
forward_EveningDetectiveServer_DeleteGame_0 = runtime.ForwardResponseMessage
) )
+190
View File
@@ -46,6 +46,11 @@ const (
EveningDetectiveServer_AddScenarioPlace_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/AddScenarioPlace" EveningDetectiveServer_AddScenarioPlace_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/AddScenarioPlace"
EveningDetectiveServer_UpdateScenarioPlace_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/UpdateScenarioPlace" EveningDetectiveServer_UpdateScenarioPlace_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/UpdateScenarioPlace"
EveningDetectiveServer_DeleteScenarioPlace_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/DeleteScenarioPlace" EveningDetectiveServer_DeleteScenarioPlace_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/DeleteScenarioPlace"
EveningDetectiveServer_AddGame_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/AddGame"
EveningDetectiveServer_GetGames_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/GetGames"
EveningDetectiveServer_GetGame_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/GetGame"
EveningDetectiveServer_UpdateGame_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/UpdateGame"
EveningDetectiveServer_DeleteGame_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/DeleteGame"
) )
// EveningDetectiveServerClient is the client API for EveningDetectiveServer service. // EveningDetectiveServerClient is the client API for EveningDetectiveServer service.
@@ -78,6 +83,11 @@ type EveningDetectiveServerClient interface {
AddScenarioPlace(ctx context.Context, in *AddScenarioPlaceReq, opts ...grpc.CallOption) (*AddScenarioPlaceRsp, error) AddScenarioPlace(ctx context.Context, in *AddScenarioPlaceReq, opts ...grpc.CallOption) (*AddScenarioPlaceRsp, error)
UpdateScenarioPlace(ctx context.Context, in *UpdateScenarioPlaceReq, opts ...grpc.CallOption) (*UpdateScenarioPlaceRsp, error) UpdateScenarioPlace(ctx context.Context, in *UpdateScenarioPlaceReq, opts ...grpc.CallOption) (*UpdateScenarioPlaceRsp, error)
DeleteScenarioPlace(ctx context.Context, in *DeleteScenarioPlaceReq, opts ...grpc.CallOption) (*DeleteScenarioPlaceRsp, error) DeleteScenarioPlace(ctx context.Context, in *DeleteScenarioPlaceReq, opts ...grpc.CallOption) (*DeleteScenarioPlaceRsp, error)
AddGame(ctx context.Context, in *AddGameReq, opts ...grpc.CallOption) (*AddGameRsp, error)
GetGames(ctx context.Context, in *GetGamesReq, opts ...grpc.CallOption) (*GetGamesRsp, error)
GetGame(ctx context.Context, in *GetGameReq, opts ...grpc.CallOption) (*GetGameRsp, error)
UpdateGame(ctx context.Context, in *UpdateGameReq, opts ...grpc.CallOption) (*UpdateGameRsp, error)
DeleteGame(ctx context.Context, in *DeleteGameReq, opts ...grpc.CallOption) (*DeleteGameRsp, error)
} }
type eveningDetectiveServerClient struct { type eveningDetectiveServerClient struct {
@@ -348,6 +358,56 @@ func (c *eveningDetectiveServerClient) DeleteScenarioPlace(ctx context.Context,
return out, nil return out, nil
} }
func (c *eveningDetectiveServerClient) AddGame(ctx context.Context, in *AddGameReq, opts ...grpc.CallOption) (*AddGameRsp, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(AddGameRsp)
err := c.cc.Invoke(ctx, EveningDetectiveServer_AddGame_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *eveningDetectiveServerClient) GetGames(ctx context.Context, in *GetGamesReq, opts ...grpc.CallOption) (*GetGamesRsp, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(GetGamesRsp)
err := c.cc.Invoke(ctx, EveningDetectiveServer_GetGames_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *eveningDetectiveServerClient) GetGame(ctx context.Context, in *GetGameReq, opts ...grpc.CallOption) (*GetGameRsp, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(GetGameRsp)
err := c.cc.Invoke(ctx, EveningDetectiveServer_GetGame_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *eveningDetectiveServerClient) UpdateGame(ctx context.Context, in *UpdateGameReq, opts ...grpc.CallOption) (*UpdateGameRsp, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(UpdateGameRsp)
err := c.cc.Invoke(ctx, EveningDetectiveServer_UpdateGame_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *eveningDetectiveServerClient) DeleteGame(ctx context.Context, in *DeleteGameReq, opts ...grpc.CallOption) (*DeleteGameRsp, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(DeleteGameRsp)
err := c.cc.Invoke(ctx, EveningDetectiveServer_DeleteGame_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
// EveningDetectiveServerServer is the server API for EveningDetectiveServer service. // EveningDetectiveServerServer is the server API for EveningDetectiveServer service.
// All implementations must embed UnimplementedEveningDetectiveServerServer // All implementations must embed UnimplementedEveningDetectiveServerServer
// for forward compatibility. // for forward compatibility.
@@ -378,6 +438,11 @@ type EveningDetectiveServerServer interface {
AddScenarioPlace(context.Context, *AddScenarioPlaceReq) (*AddScenarioPlaceRsp, error) AddScenarioPlace(context.Context, *AddScenarioPlaceReq) (*AddScenarioPlaceRsp, error)
UpdateScenarioPlace(context.Context, *UpdateScenarioPlaceReq) (*UpdateScenarioPlaceRsp, error) UpdateScenarioPlace(context.Context, *UpdateScenarioPlaceReq) (*UpdateScenarioPlaceRsp, error)
DeleteScenarioPlace(context.Context, *DeleteScenarioPlaceReq) (*DeleteScenarioPlaceRsp, error) DeleteScenarioPlace(context.Context, *DeleteScenarioPlaceReq) (*DeleteScenarioPlaceRsp, error)
AddGame(context.Context, *AddGameReq) (*AddGameRsp, error)
GetGames(context.Context, *GetGamesReq) (*GetGamesRsp, error)
GetGame(context.Context, *GetGameReq) (*GetGameRsp, error)
UpdateGame(context.Context, *UpdateGameReq) (*UpdateGameRsp, error)
DeleteGame(context.Context, *DeleteGameReq) (*DeleteGameRsp, error)
mustEmbedUnimplementedEveningDetectiveServerServer() mustEmbedUnimplementedEveningDetectiveServerServer()
} }
@@ -466,6 +531,21 @@ func (UnimplementedEveningDetectiveServerServer) UpdateScenarioPlace(context.Con
func (UnimplementedEveningDetectiveServerServer) DeleteScenarioPlace(context.Context, *DeleteScenarioPlaceReq) (*DeleteScenarioPlaceRsp, error) { func (UnimplementedEveningDetectiveServerServer) DeleteScenarioPlace(context.Context, *DeleteScenarioPlaceReq) (*DeleteScenarioPlaceRsp, error) {
return nil, status.Error(codes.Unimplemented, "method DeleteScenarioPlace not implemented") return nil, status.Error(codes.Unimplemented, "method DeleteScenarioPlace not implemented")
} }
func (UnimplementedEveningDetectiveServerServer) AddGame(context.Context, *AddGameReq) (*AddGameRsp, error) {
return nil, status.Error(codes.Unimplemented, "method AddGame not implemented")
}
func (UnimplementedEveningDetectiveServerServer) GetGames(context.Context, *GetGamesReq) (*GetGamesRsp, error) {
return nil, status.Error(codes.Unimplemented, "method GetGames not implemented")
}
func (UnimplementedEveningDetectiveServerServer) GetGame(context.Context, *GetGameReq) (*GetGameRsp, error) {
return nil, status.Error(codes.Unimplemented, "method GetGame not implemented")
}
func (UnimplementedEveningDetectiveServerServer) UpdateGame(context.Context, *UpdateGameReq) (*UpdateGameRsp, error) {
return nil, status.Error(codes.Unimplemented, "method UpdateGame not implemented")
}
func (UnimplementedEveningDetectiveServerServer) DeleteGame(context.Context, *DeleteGameReq) (*DeleteGameRsp, error) {
return nil, status.Error(codes.Unimplemented, "method DeleteGame not implemented")
}
func (UnimplementedEveningDetectiveServerServer) mustEmbedUnimplementedEveningDetectiveServerServer() { func (UnimplementedEveningDetectiveServerServer) mustEmbedUnimplementedEveningDetectiveServerServer() {
} }
func (UnimplementedEveningDetectiveServerServer) testEmbeddedByValue() {} func (UnimplementedEveningDetectiveServerServer) testEmbeddedByValue() {}
@@ -956,6 +1036,96 @@ func _EveningDetectiveServer_DeleteScenarioPlace_Handler(srv interface{}, ctx co
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }
func _EveningDetectiveServer_AddGame_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(AddGameReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(EveningDetectiveServerServer).AddGame(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: EveningDetectiveServer_AddGame_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(EveningDetectiveServerServer).AddGame(ctx, req.(*AddGameReq))
}
return interceptor(ctx, in, info, handler)
}
func _EveningDetectiveServer_GetGames_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetGamesReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(EveningDetectiveServerServer).GetGames(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: EveningDetectiveServer_GetGames_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(EveningDetectiveServerServer).GetGames(ctx, req.(*GetGamesReq))
}
return interceptor(ctx, in, info, handler)
}
func _EveningDetectiveServer_GetGame_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetGameReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(EveningDetectiveServerServer).GetGame(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: EveningDetectiveServer_GetGame_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(EveningDetectiveServerServer).GetGame(ctx, req.(*GetGameReq))
}
return interceptor(ctx, in, info, handler)
}
func _EveningDetectiveServer_UpdateGame_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(UpdateGameReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(EveningDetectiveServerServer).UpdateGame(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: EveningDetectiveServer_UpdateGame_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(EveningDetectiveServerServer).UpdateGame(ctx, req.(*UpdateGameReq))
}
return interceptor(ctx, in, info, handler)
}
func _EveningDetectiveServer_DeleteGame_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(DeleteGameReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(EveningDetectiveServerServer).DeleteGame(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: EveningDetectiveServer_DeleteGame_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(EveningDetectiveServerServer).DeleteGame(ctx, req.(*DeleteGameReq))
}
return interceptor(ctx, in, info, handler)
}
// EveningDetectiveServer_ServiceDesc is the grpc.ServiceDesc for EveningDetectiveServer service. // EveningDetectiveServer_ServiceDesc is the grpc.ServiceDesc for EveningDetectiveServer service.
// It's only intended for direct use with grpc.RegisterService, // It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy) // and not to be introspected or modified (even as a copy)
@@ -1067,6 +1237,26 @@ var EveningDetectiveServer_ServiceDesc = grpc.ServiceDesc{
MethodName: "DeleteScenarioPlace", MethodName: "DeleteScenarioPlace",
Handler: _EveningDetectiveServer_DeleteScenarioPlace_Handler, Handler: _EveningDetectiveServer_DeleteScenarioPlace_Handler,
}, },
{
MethodName: "AddGame",
Handler: _EveningDetectiveServer_AddGame_Handler,
},
{
MethodName: "GetGames",
Handler: _EveningDetectiveServer_GetGames_Handler,
},
{
MethodName: "GetGame",
Handler: _EveningDetectiveServer_GetGame_Handler,
},
{
MethodName: "UpdateGame",
Handler: _EveningDetectiveServer_UpdateGame_Handler,
},
{
MethodName: "DeleteGame",
Handler: _EveningDetectiveServer_DeleteGame_Handler,
},
}, },
Streams: []grpc.StreamDesc{}, Streams: []grpc.StreamDesc{},
Metadata: "main.proto", Metadata: "main.proto",