add cover

This commit is contained in:
2026-09-10 12:01:50 +07:00
parent 36c8ff26db
commit 9e842a467e
5 changed files with 50 additions and 4 deletions
+20 -2
View File
@@ -95,7 +95,9 @@ func (s *server) GetScreenState(ctx context.Context, req *proto.GetScreenStateRe
if err != nil {
return nil, status.Error(codes.Internal, "не удалось получить состояние экрана")
}
return &proto.GetScreenStateRsp{State: screenState(session)}, nil
state := screenState(session)
s.enrichScreenState(ctx, session, state)
return &proto.GetScreenStateRsp{State: state}, nil
}
func (s *server) GetGameScreens(ctx context.Context, req *proto.GetGameScreensReq) (*proto.GetGameScreensRsp, error) {
@@ -144,7 +146,9 @@ func (s *server) BindScreen(ctx context.Context, req *proto.BindScreenReq) (*pro
if err != nil {
return nil, status.Error(codes.Internal, "не удалось получить состояние экрана")
}
return &proto.BindScreenRsp{State: screenState(session)}, nil
state := screenState(session)
s.enrichScreenState(ctx, session, state)
return &proto.BindScreenRsp{State: state}, nil
}
func (s *server) UnbindScreen(ctx context.Context, req *proto.UnbindScreenReq) (*proto.UnbindScreenRsp, error) {
@@ -291,6 +295,20 @@ func screenState(session *screen_sessions_repo.ScreenSession) *proto.ScreenState
return state
}
func (s *server) enrichScreenState(ctx context.Context, session *screen_sessions_repo.ScreenSession, state *proto.ScreenState) {
if session.GameID == nil {
return
}
game, err := s.gameService.GetFullGame(ctx, *session.GameID)
if err != nil {
return
}
state.GameName = game.Name
if game.Scenario != nil && game.Scenario.Image != nil {
state.CoverImage = *game.Scenario.Image
}
}
func (s *server) SetScreenMode(ctx context.Context, req *proto.SetScreenModeReq) (*proto.SetScreenModeRsp, error) {
if !canManageScreens(ctx) {
return nil, status.Error(codes.PermissionDenied, "permission denied")