feat:
This commit is contained in:
parent
568ccea09a
commit
c2076338fa
13 changed files with 509 additions and 166 deletions
|
@ -1 +1,41 @@
|
|||
package grpc
|
||||
|
||||
import (
|
||||
"git.sch9.ru/new_gate/ms-tester/internal/tester"
|
||||
testerv1 "git.sch9.ru/new_gate/ms-tester/pkg/go/gen/proto/tester/v1"
|
||||
"google.golang.org/grpc"
|
||||
)
|
||||
|
||||
func NewTesterHandlers(gserver *grpc.Server, testerUC tester.TesterUseCase) {
|
||||
handlers := &testerHandlers{
|
||||
testerUC: testerUC,
|
||||
}
|
||||
|
||||
testerv1.RegisterTesterServiceServer(gserver, handlers)
|
||||
}
|
||||
|
||||
type testerHandlers struct {
|
||||
testerv1.UnimplementedTesterServiceServer
|
||||
|
||||
testerUC tester.TesterUseCase
|
||||
}
|
||||
|
||||
func (h *testerHandlers) CreateSolution(req *testerv1.CreateSolutionRequest, stream testerv1.TesterService_CreateSolutionServer) error {
|
||||
id, err := h.testerUC.CreateSolution(stream.Context(), req.GetTaskId(), req.GetSolution(), req.GetLanguage())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
ch, err := h.testerUC.ProcessTesting(stream.Context(), id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for state := range ch {
|
||||
err = stream.Send(&testerv1.TestingState{Msg: state})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue