package com.rongyichuang.judge.api; import com.rongyichuang.judge.dto.request.JudgeInput; import com.rongyichuang.judge.dto.response.JudgeResponse; import com.rongyichuang.judge.service.JudgeService; import com.rongyichuang.common.dto.request.MediaInput; import com.rongyichuang.common.dto.response.MediaResponse; import com.rongyichuang.common.service.MediaService; import org.springframework.graphql.data.method.annotation.Argument; import org.springframework.graphql.data.method.annotation.MutationMapping; import org.springframework.graphql.data.method.annotation.QueryMapping; import org.springframework.stereotype.Controller; import org.springframework.web.multipart.MultipartFile; import java.util.List; @Controller public class JudgeGraphqlApi { private final JudgeService judgeService; private final MediaService mediaService; public JudgeGraphqlApi(JudgeService judgeService, MediaService mediaService) { this.judgeService = judgeService; this.mediaService = mediaService; } @QueryMapping public List judges() { return judgeService.findAll(); } @QueryMapping public List judgesByName(@Argument String name) { return judgeService.findByName(name); } @QueryMapping public JudgeResponse judge(@Argument Long id) { return judgeService.findById(id); } @MutationMapping public JudgeResponse saveJudge(@Argument JudgeInput input) { return judgeService.save(input); } @MutationMapping public Boolean deleteJudge(@Argument Long id) { judgeService.delete(id); return true; } }