generated from VLADIMIR/template_frontend
add screen
This commit is contained in:
+177
-10
@@ -194,8 +194,8 @@ service EveningDetectiveServer {
|
||||
body: "*"
|
||||
};
|
||||
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
||||
tags: "Пользователи";
|
||||
summary: "Изменить чужой пароль (только администратор)";
|
||||
tags : "Пользователи";
|
||||
summary : "Изменить чужой пароль (только администратор)";
|
||||
description: "Пароль вводится вручную: минимум 12 символов, максимум 72 байта. Сеансы сохраняются. Ошибки: 401 — нет авторизации, 403 — нет прав, 400 — неверные данные или собственный ID, 404 — пользователь не найден, 500 — ошибка сохранения.";
|
||||
};
|
||||
}
|
||||
@@ -437,11 +437,11 @@ service EveningDetectiveServer {
|
||||
// Видео загружается через UploadFile (MP4/WebM). Пустая conclusion удаляет закрывашку.
|
||||
rpc UpdateScenarioConclusion(UpdateScenarioConclusionReq) returns (UpdateScenarioConclusionRsp) {
|
||||
option (google.api.http) = {
|
||||
put: "/api/scenarios/{id}/conclusion"
|
||||
put : "/api/scenarios/{id}/conclusion"
|
||||
body: "*"
|
||||
};
|
||||
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
||||
tags: "Сценарии";
|
||||
tags : "Сценарии";
|
||||
summary: "Обновить закрывашку сценария (игрокам не передаётся)";
|
||||
};
|
||||
}
|
||||
@@ -498,6 +498,84 @@ service EveningDetectiveServer {
|
||||
};
|
||||
}
|
||||
|
||||
// Создать сессию экрана. Экран получает токен и показывает QR для привязки.
|
||||
rpc CreateScreenSession(CreateScreenSessionReq) returns (CreateScreenSessionRsp) {
|
||||
option (google.api.http) = {
|
||||
post: "/api/screens"
|
||||
body: "*"
|
||||
};
|
||||
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
||||
security: {
|
||||
security_requirement: {}
|
||||
}
|
||||
tags : "Экраны";
|
||||
summary: "Создать сессию экрана";
|
||||
};
|
||||
}
|
||||
|
||||
// Получить состояние экрана по его токену. Вызывается самим экраном.
|
||||
rpc GetScreenState(GetScreenStateReq) returns (GetScreenStateRsp) {
|
||||
option (google.api.http) = {
|
||||
post: "/api/screens/state"
|
||||
body: "*"
|
||||
};
|
||||
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
||||
security: {
|
||||
security_requirement: {}
|
||||
}
|
||||
tags : "Экраны";
|
||||
summary: "Получить состояние экрана";
|
||||
};
|
||||
}
|
||||
|
||||
// Привязать экран к игре. Требует авторизацию организатора, автора или администратора.
|
||||
rpc BindScreen(BindScreenReq) returns (BindScreenRsp) {
|
||||
option (google.api.http) = {
|
||||
post: "/api/screens/{screenId}/bind"
|
||||
body: "*"
|
||||
};
|
||||
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
||||
tags : "Экраны";
|
||||
summary: "Привязать экран к игре";
|
||||
};
|
||||
}
|
||||
|
||||
// Отвязать экран от игры. Требует авторизацию организатора, автора или администратора.
|
||||
rpc UnbindScreen(UnbindScreenReq) returns (UnbindScreenRsp) {
|
||||
option (google.api.http) = {
|
||||
post: "/api/screens/{screenId}/unbind"
|
||||
body: "*"
|
||||
};
|
||||
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
||||
tags : "Экраны";
|
||||
summary: "Отвязать экран от игры";
|
||||
};
|
||||
}
|
||||
|
||||
// Изменить общий режим показа всех экранов игры.
|
||||
rpc SetScreenMode(SetScreenModeReq) returns (SetScreenModeRsp) {
|
||||
option (google.api.http) = {
|
||||
post: "/api/games/{gameId}/screens/mode"
|
||||
body: "*"
|
||||
};
|
||||
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
||||
tags : "Экраны";
|
||||
summary: "Изменить режим показа экранов";
|
||||
};
|
||||
}
|
||||
|
||||
// Отправить общую команду экранам игры.
|
||||
rpc SendScreenCommand(SendScreenCommandReq) returns (SendScreenCommandRsp) {
|
||||
option (google.api.http) = {
|
||||
post: "/api/games/{gameId}/screens/command"
|
||||
body: "*"
|
||||
};
|
||||
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
||||
tags : "Экраны";
|
||||
summary: "Отправить команду экранам";
|
||||
};
|
||||
}
|
||||
|
||||
rpc DownloadTeamQR(GetGameReq) returns (google.api.HttpBody) {
|
||||
option (google.api.http) = {
|
||||
get: "/api/games/{id}/teams/qr.pdf"
|
||||
@@ -841,7 +919,7 @@ message GetMeRsp {
|
||||
}
|
||||
|
||||
message ChangeUserPasswordReq {
|
||||
int32 id = 1;
|
||||
int32 id = 1;
|
||||
string new_password = 2;
|
||||
}
|
||||
|
||||
@@ -943,7 +1021,7 @@ message Story {
|
||||
}
|
||||
|
||||
message Conclusion {
|
||||
string text = 1;
|
||||
string text = 1;
|
||||
string video = 2;
|
||||
}
|
||||
|
||||
@@ -1083,7 +1161,7 @@ message DeleteScenarioPlaceRsp {
|
||||
}
|
||||
|
||||
message UpdateScenarioConclusionReq {
|
||||
int32 id = 1;
|
||||
int32 id = 1;
|
||||
Conclusion conclusion = 2;
|
||||
}
|
||||
|
||||
@@ -1168,6 +1246,95 @@ message Game {
|
||||
optional google.protobuf.Timestamp ended_at = 9;
|
||||
}
|
||||
|
||||
enum ScreenMode {
|
||||
SCREEN_MODE_UNSPECIFIED = 0;
|
||||
SCREEN_MODE_COVER = 1;
|
||||
SCREEN_MODE_INTRO = 2;
|
||||
SCREEN_MODE_INTRO_DONE = 3;
|
||||
SCREEN_MODE_CONCLUSION = 4;
|
||||
SCREEN_MODE_CONCLUSION_DONE = 5;
|
||||
SCREEN_MODE_RESULTS = 6;
|
||||
}
|
||||
|
||||
enum ScreenCommand {
|
||||
SCREEN_COMMAND_UNSPECIFIED = 0;
|
||||
SCREEN_COMMAND_PLAY = 1;
|
||||
SCREEN_COMMAND_PAUSE = 2;
|
||||
SCREEN_COMMAND_RESUME = 3;
|
||||
SCREEN_COMMAND_STOP = 4;
|
||||
SCREEN_COMMAND_REPLAY = 5;
|
||||
SCREEN_COMMAND_SEEK = 6;
|
||||
SCREEN_COMMAND_VOLUME = 7;
|
||||
}
|
||||
|
||||
message ScreenState {
|
||||
string id = 1;
|
||||
string status = 2;
|
||||
optional int32 game_id = 3;
|
||||
ScreenMode mode = 4;
|
||||
bool sound_enabled = 5;
|
||||
string error = 6;
|
||||
int64 state_version = 7;
|
||||
int64 position_ms = 8;
|
||||
}
|
||||
|
||||
message CreateScreenSessionReq {}
|
||||
|
||||
message CreateScreenSessionRsp {
|
||||
string error = 1;
|
||||
string screen_id = 2;
|
||||
string access_token = 3;
|
||||
}
|
||||
|
||||
message GetScreenStateReq {
|
||||
string screenId = 1;
|
||||
string accessToken = 2;
|
||||
}
|
||||
|
||||
message GetScreenStateRsp {
|
||||
string error = 1;
|
||||
ScreenState state = 2;
|
||||
}
|
||||
|
||||
message BindScreenReq {
|
||||
string screenId = 1;
|
||||
string accessToken = 2;
|
||||
int32 gameId = 3;
|
||||
}
|
||||
|
||||
message BindScreenRsp {
|
||||
string error = 1;
|
||||
ScreenState state = 2;
|
||||
}
|
||||
|
||||
message UnbindScreenReq {
|
||||
string screenId = 1;
|
||||
}
|
||||
|
||||
message UnbindScreenRsp {
|
||||
string error = 1;
|
||||
}
|
||||
|
||||
message SetScreenModeReq {
|
||||
int32 gameId = 1;
|
||||
ScreenMode mode = 2;
|
||||
}
|
||||
|
||||
message SetScreenModeRsp {
|
||||
string error = 1;
|
||||
}
|
||||
|
||||
message SendScreenCommandReq {
|
||||
int32 gameId = 1;
|
||||
ScreenCommand command = 2;
|
||||
int64 position_ms = 3;
|
||||
int32 volume = 4;
|
||||
}
|
||||
|
||||
message SendScreenCommandRsp {
|
||||
string error = 1;
|
||||
}
|
||||
|
||||
message Team {
|
||||
int32 id = 1;
|
||||
string name = 2;
|
||||
@@ -1330,9 +1497,9 @@ message GetTeamStoryReq {
|
||||
}
|
||||
|
||||
message GetTeamStoryRsp {
|
||||
string error = 1;
|
||||
Story story = 2;
|
||||
Game game = 3;
|
||||
string error = 1;
|
||||
Story story = 2;
|
||||
Game game = 3;
|
||||
repeated TeamAction actions = 4;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user