This commit is contained in:
2026-10-11 13:26:38 +07:00
parent 74a45da402
commit 6f2b63511c
17 changed files with 1254 additions and 304 deletions
+37
View File
@@ -634,6 +634,30 @@ service EveningDetectiveServer {
};
}
// Dedicated HTTP handlers stream ZIPs; gRPC retains its message size limit.
rpc DownloadGameResultsPackage(GameResultsPackageReq) returns (google.api.HttpBody) {
option (google.api.http) = {get: "/api/games/{ID}/results-package/download"};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags : "Игры";
summary : "Скачать свежий ZIP результатов завершённой venue-игры";
produces: "application/zip";
};
}
rpc ApplyGameResultsPackage(ApplyGameResultsPackageReq) returns (GameResultsPackageRsp) {
option (google.api.http) = {
post: "/api/games/{ID}/results-package/apply"
body: "package"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags : "Игры";
summary : "Применить ZIP результатов на исходной prod-игре";
description: "HTTP принимает сырой ZIP до 1 ГиБ, включая поток без Content-Length. Ошибки: 400 неверный пакет/игра, 413 размер, 409 конфликт, 503 временный отказ.";
consumes : "application/zip";
produces : "application/json";
};
}
rpc StartGameExport(StartGameExportReq) returns (GameExportRsp) {
option (google.api.http) = {
post: "/api/games/{ID}/export"
@@ -2345,3 +2369,16 @@ message DeleteTaskReq {
message TaskRsp { DeveloperTask task = 1; }
message DeleteTaskRsp {}
message GameResultsPackageReq { int32 ID = 1; }
message ApplyGameResultsPackageReq {
int32 ID = 1;
google.api.HttpBody package = 2;
}
message GameResultsPackageRsp {
int32 gameID = 1;
string packageID = 2;
string appliedAt = 3;
}