5
5
"context"
6
6
"time"
7
7
8
+ "github.com/criyle/go-judge-demo/pb"
8
9
execpb "github.com/criyle/go-judge/pb"
9
- "github.com/criyle/go-judger-demo/pb"
10
10
"go.mongodb.org/mongo-driver/v2/bson"
11
11
"go.uber.org/zap"
12
12
"google.golang.org/protobuf/types/known/emptypb"
@@ -54,18 +54,19 @@ func (s *demoServer) Submission(ctx context.Context, req *pb.SubmissionRequest)
54
54
}
55
55
sub := make ([]* pb.Submission , 0 , len (m ))
56
56
for _ , v := range m {
57
- sub = append (sub , & pb.Submission {
58
- Id : v .ID .Hex (),
57
+ id := v .ID .Hex ()
58
+ sub = append (sub , pb.Submission_builder {
59
+ Id : & id ,
59
60
Language : convertLanguage (v .Lang ),
60
- Source : v .Source ,
61
+ Source : & v .Source ,
61
62
Date : timestamppb .New (* v .Date ),
62
- Status : v .Status ,
63
- TotalTime : v .TotalTime ,
64
- MaxMemory : v .MaxMemory ,
63
+ Status : & v .Status ,
64
+ TotalTime : & v .TotalTime ,
65
+ MaxMemory : & v .MaxMemory ,
65
66
Results : convertResults (v .Results ),
66
- })
67
+ }. Build () )
67
68
}
68
- return & pb.SubmissionResponse {Submissions : sub }, nil
69
+ return pb.SubmissionResponse_builder {Submissions : sub }. Build () , nil
69
70
}
70
71
71
72
func (s * demoServer ) Submit (ctx context.Context , req * pb.SubmitRequest ) (* pb.SubmitResponse , error ) {
@@ -76,22 +77,24 @@ func (s *demoServer) Submit(ctx context.Context, req *pb.SubmitRequest) (*pb.Sub
76
77
if err != nil {
77
78
return nil , err
78
79
}
79
- s .submit <- & pb.JudgeClientRequest {
80
- Id : m .ID .Hex (),
80
+ id := m .ID .Hex ()
81
+ source := req .GetSource ()
82
+ s .submit <- pb.JudgeClientRequest_builder {
83
+ Id : & id ,
81
84
Language : req .GetLanguage (),
82
- Source : req . GetSource () ,
85
+ Source : & source ,
83
86
InputAnswer : req .GetInputAnswer (),
84
- }
85
- s .update <- & pb.JudgeClientResponse {
86
- Id : m . ID . Hex () ,
87
- Language : req .Language ,
87
+ }. Build ()
88
+ s .update <- pb.JudgeClientResponse_builder {
89
+ Id : & id ,
90
+ Language : req .GetLanguage () ,
88
91
Date : timestamppb .New (* m .Date ),
89
- Source : m . Source ,
90
- }
92
+ Source : & source ,
93
+ }. Build ()
91
94
s .logger .Sugar ().Debug ("submit: " , m )
92
- return & pb.SubmitResponse {
93
- Id : m . ID . Hex () ,
94
- }, nil
95
+ return pb.SubmitResponse_builder {
96
+ Id : & id ,
97
+ }. Build () , nil
95
98
}
96
99
97
100
func (s * demoServer ) Judge (js pb.DemoBackend_JudgeServer ) error {
@@ -118,7 +121,7 @@ func (s *demoServer) Judge(js pb.DemoBackend_JudgeServer) error {
118
121
return err
119
122
}
120
123
s .update <- resp
121
- if resp .Type == "finished" {
124
+ if resp .GetType () == "finished" {
122
125
break
123
126
}
124
127
}
@@ -193,13 +196,13 @@ func (s *demoServer) Shell(ss pb.DemoBackend_ShellServer) error {
193
196
switch msg := msg .Response .(type ) {
194
197
case * execpb.StreamResponse_ExecOutput :
195
198
output .Write (msg .ExecOutput .Content )
196
- err = ss .Send (& pb.ShellOutput {Content : msg .ExecOutput .Content })
199
+ err = ss .Send (pb.ShellOutput_builder {Content : msg .ExecOutput .Content }. Build () )
197
200
if err != nil {
198
201
return
199
202
}
200
203
201
204
case * execpb.StreamResponse_ExecResponse :
202
- err = ss .Send (& pb.ShellOutput {Content : []byte (msg .ExecResponse .String ())})
205
+ err = ss .Send (pb.ShellOutput_builder {Content : []byte (msg .ExecResponse .String ())}. Build () )
203
206
if err != nil {
204
207
return
205
208
}
@@ -217,22 +220,22 @@ func (s *demoServer) Shell(ss pb.DemoBackend_ShellServer) error {
217
220
if err != nil {
218
221
return
219
222
}
220
- switch msg := msg . Request .( type ) {
221
- case * pb.ShellInput_Input :
222
- input .Write (msg .Input . Content )
223
+ switch msg . WhichRequest ( ) {
224
+ case pb .ShellInput_Input_case :
225
+ input .Write (msg .GetInput (). GetContent () )
223
226
err = sc .Send (& execpb.StreamRequest {Request : & execpb.StreamRequest_ExecInput {ExecInput : & execpb.StreamRequest_Input {
224
- Content : msg .Input . Content ,
227
+ Content : msg .GetInput (). GetContent () ,
225
228
}}})
226
229
if err != nil {
227
230
return
228
231
}
229
232
230
- case * pb.ShellInput_Resize :
233
+ case pb .ShellInput_Resize_case :
231
234
err = sc .Send (& execpb.StreamRequest {Request : & execpb.StreamRequest_ExecResize {ExecResize : & execpb.StreamRequest_Resize {
232
- Rows : msg .Resize . Rows ,
233
- Cols : msg .Resize . Cols ,
234
- X : msg .Resize . X ,
235
- Y : msg .Resize . Y ,
235
+ Rows : msg .GetResize (). GetRows () ,
236
+ Cols : msg .GetResize (). GetCols () ,
237
+ X : msg .GetResize (). GetX () ,
238
+ Y : msg .GetResize (). GetY () ,
236
239
}}})
237
240
if err != nil {
238
241
return
@@ -258,15 +261,15 @@ func (s *demoServer) updateLoop() {
258
261
delete (s .observers , o )
259
262
260
263
case u := <- s .update :
261
- up := & pb.JudgeUpdate {
262
- Id : u .GetId (),
263
- Type : u .GetType (),
264
- Status : u .GetStatus (),
264
+ up := pb.JudgeUpdate_builder {
265
265
Date : u .GetDate (),
266
266
Language : u .GetLanguage (),
267
267
Results : u .GetResults (),
268
- Source : u .GetSource (),
269
- }
268
+ }.Build ()
269
+ up .SetId (u .GetId ())
270
+ up .SetType (u .GetType ())
271
+ up .SetStatus (u .GetStatus ())
272
+ up .SetSource (u .GetSource ())
270
273
// save to db
271
274
id , _ := bson .ObjectIDFromHex (u .GetId ())
272
275
s .db .Update (context .TODO (), & JudgerUpdate {
@@ -299,13 +302,13 @@ func convertLanguagePB(l *pb.Language) Language {
299
302
}
300
303
301
304
func convertLanguage (l Language ) * pb.Language {
302
- return & pb.Language {
303
- Name : l .Name ,
304
- SourceFileName : l .SourceFileName ,
305
- CompileCmd : l .CompileCmd ,
306
- Executables : l .Executables ,
307
- RunCmd : l .RunCmd ,
308
- }
305
+ return pb.Language_builder {
306
+ Name : & l .Name ,
307
+ SourceFileName : & l .SourceFileName ,
308
+ CompileCmd : & l .CompileCmd ,
309
+ Executables : & l .Executables ,
310
+ RunCmd : & l .RunCmd ,
311
+ }. Build ()
309
312
}
310
313
311
314
func convertResultsPB (r []* pb.Result ) []Result {
@@ -318,12 +321,12 @@ func convertResultsPB(r []*pb.Result) []Result {
318
321
319
322
func convertResultPB (r * pb.Result ) Result {
320
323
return Result {
321
- Time : r .Time ,
322
- Memory : r .Memory ,
323
- Stdin : r .Stdin ,
324
- Stdout : r .Stdout ,
325
- Stderr : r .Stderr ,
326
- Log : r .Log ,
324
+ Time : r .GetTime () ,
325
+ Memory : r .GetMemory () ,
326
+ Stdin : r .GetStdin () ,
327
+ Stdout : r .GetStdout () ,
328
+ Stderr : r .GetStderr () ,
329
+ Log : r .GetLog () ,
327
330
}
328
331
}
329
332
@@ -336,12 +339,12 @@ func convertResults(r []Result) []*pb.Result {
336
339
}
337
340
338
341
func convertResult (r Result ) * pb.Result {
339
- return & pb.Result {
340
- Time : r .Time ,
341
- Memory : r .Memory ,
342
- Stdin : r .Stdin ,
343
- Stdout : r .Stdout ,
344
- Stderr : r .Stderr ,
345
- Log : r .Log ,
346
- }
342
+ return pb.Result_builder {
343
+ Time : & r .Time ,
344
+ Memory : & r .Memory ,
345
+ Stdin : & r .Stdin ,
346
+ Stdout : & r .Stdout ,
347
+ Stderr : & r .Stderr ,
348
+ Log : & r .Log ,
349
+ }. Build ()
347
350
}
0 commit comments