package cn.seecoder.ojserver.controller; import cn.seecoder.ojserver.model.vo.CodeJudgeVO; import cn.seecoder.ojserver.service.JudgeService; import cn.seecoder.ojserver.web.Response; import com.nju.edu.paasMonitorClient.MonitorClient; import com.nju.edu.paasMonitorClient.entity.Call; import com.nju.edu.paasMonitorCommon.enums.SeecSystem; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping(path = "/api/judge") public class JudgeController { private JudgeService judgeService; public JudgeController(JudgeService judgeService) { this.judgeService = judgeService; } @GetMapping("") public Response getJudge() { return Response.buildSuccess(true); } @PostMapping("") public Response postJudge() { return Response.buildSuccess(true); } @PostMapping("/code") public Response judgeCode(@RequestParam(value = "problemId") Integer problemId, @RequestBody CodeJudgeVO codeJudgeVO) { Call call = MonitorClient.createCall(SeecSystem.CODER,"ojtest119","/api/judge/code"); try{ call.start(); return Response.buildSuccess(judgeService.judgeCode(problemId, codeJudgeVO)); }catch (Exception e){ MonitorClient.logError(SeecSystem.CODER,"ojtest119","/api/judge/code",e); call.fail(); throw e; }finally { call.end(); } } @PostMapping("/asyncCode") public Response asyncJudgeCode(@RequestParam(value = "problemId") Integer problemId, @RequestBody CodeJudgeVO codeJudgeVO){ return Response.buildSuccess(judgeService.asyncJudgeCode(problemId, codeJudgeVO)); } }