This commit is contained in:
2026-09-17 00:22:40 +07:00
parent 23caa76e14
commit de775bbb24
7 changed files with 949 additions and 886 deletions
+72
View File
@@ -0,0 +1,72 @@
package app
import (
"context"
"evening_detective_server/internal/modules/processor_jwt"
"evening_detective_server/internal/modules/roles"
proto "evening_detective_server/proto"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
func (s *server) GetTeamAnswers(ctx context.Context, req *proto.GetTeamAnswersReq) (*proto.GetTeamAnswersRsp, error) {
answers, err := s.gameService.GetTeamAnswers(
ctx,
int(req.Id),
req.Password,
)
if err != nil {
return &proto.GetTeamAnswersRsp{
Error: err.Error(),
}, nil
}
return &proto.GetTeamAnswersRsp{
Answers: mapAnswers(answers),
}, nil
}
func (s *server) SubmitTeamAnswers(ctx context.Context, req *proto.SubmitTeamAnswersReq) (*proto.SubmitTeamAnswersRsp, error) {
err := s.gameService.SubmitTeamAnswers(
ctx,
int(req.Id),
req.Password,
convertAnswers(req.Answers),
)
if err != nil {
return &proto.SubmitTeamAnswersRsp{
Error: err.Error(),
}, nil
}
return &proto.SubmitTeamAnswersRsp{}, nil
}
func (s *server) SetTeamAnswerScore(ctx context.Context, req *proto.SetTeamAnswerScoreReq) (*proto.SetTeamAnswerScoreRsp, 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")
}
var score *int
if req.Score != nil {
v := int(req.GetScore())
score = &v
}
err := s.gameService.SetTeamAnswerScore(
ctx,
int(req.Id),
req.QuestionCode,
score,
)
if err != nil {
return &proto.SetTeamAnswerScoreRsp{
Error: err.Error(),
}, nil
}
return &proto.SetTeamAnswerScoreRsp{}, nil
}