add game statuses

This commit is contained in:
2026-08-04 00:46:33 +07:00
parent 2492910e01
commit ae3a8c809f
9 changed files with 1446 additions and 125 deletions
+64
View File
@@ -539,6 +539,70 @@ func (s *server) UpdateGame(ctx context.Context, req *proto.UpdateGameReq) (*pro
return &proto.UpdateGameRsp{}, nil
}
func (s *server) StartGame(ctx context.Context, req *proto.StartGameReq) (*proto.StartGameRsp, error) {
claims := ctx.Value("claims").(*processor_jwt.JWTClaims)
if !roles.HasRole(claims, roles.Organizer) && !roles.HasRole(claims, roles.Author) {
return nil, status.Errorf(codes.PermissionDenied, "permission denied")
}
err := s.gameService.StartGame(ctx, int(req.Id))
if err != nil {
return &proto.StartGameRsp{
Error: err.Error(),
}, nil
}
return &proto.StartGameRsp{}, nil
}
func (s *server) PauseGame(ctx context.Context, req *proto.PauseGameReq) (*proto.PauseGameRsp, error) {
claims := ctx.Value("claims").(*processor_jwt.JWTClaims)
if !roles.HasRole(claims, roles.Organizer) && !roles.HasRole(claims, roles.Author) {
return nil, status.Errorf(codes.PermissionDenied, "permission denied")
}
err := s.gameService.PauseGame(ctx, int(req.Id))
if err != nil {
return &proto.PauseGameRsp{
Error: err.Error(),
}, nil
}
return &proto.PauseGameRsp{}, nil
}
func (s *server) FinishGame(ctx context.Context, req *proto.FinishGameReq) (*proto.FinishGameRsp, error) {
claims := ctx.Value("claims").(*processor_jwt.JWTClaims)
if !roles.HasRole(claims, roles.Organizer) && !roles.HasRole(claims, roles.Author) {
return nil, status.Errorf(codes.PermissionDenied, "permission denied")
}
err := s.gameService.FinishGame(ctx, int(req.Id))
if err != nil {
return &proto.FinishGameRsp{
Error: err.Error(),
}, nil
}
return &proto.FinishGameRsp{}, nil
}
func (s *server) ResetGame(ctx context.Context, req *proto.ResetGameReq) (*proto.ResetGameRsp, error) {
claims := ctx.Value("claims").(*processor_jwt.JWTClaims)
if !roles.HasRole(claims, roles.Organizer) && !roles.HasRole(claims, roles.Author) {
return nil, status.Errorf(codes.PermissionDenied, "permission denied")
}
err := s.gameService.ResetGame(ctx, int(req.Id))
if err != nil {
return &proto.ResetGameRsp{
Error: err.Error(),
}, nil
}
return &proto.ResetGameRsp{}, nil
}
func (s *server) AddTeam(ctx context.Context, req *proto.AddTeamReq) (*proto.AddTeamRsp, error) {
claims := ctx.Value("claims").(*processor_jwt.JWTClaims)
if !roles.HasRole(claims, roles.Organizer) && !roles.HasRole(claims, roles.Author) {