generated from VLADIMIR/template
add screen api
This commit is contained in:
+167
@@ -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"
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user