Skip to content
Snippets Groups Projects
LecturerController.java 3.66 KiB
Newer Older
ywb16155's avatar
ywb16155 committed
package app.api;
ywb16155's avatar
ywb16155 committed
import app.entities.ClassEntity;
import app.entities.MinutePaperEntity;
import app.pojo.PaperDetailsWrapper;
import app.pojo.ResponseGraphDetails;
import app.pojo.StudentGraphDetails;
import app.pojo.WordDetails;
ywb16155's avatar
ywb16155 committed
import app.services.ClassInfoService;
import app.services.GraphDataService;
import app.services.LecturerInfoService;
import app.services.SentimentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

@RestController
public class LecturerController {

    @Autowired
    private LecturerInfoService lecturerInfoService;

    @Autowired
    private ClassInfoService classInfoService;

    @Autowired
    private GraphDataService graphDataService;

    @Autowired
    private SentimentService sentimentService;

    @PostMapping(value = "/getLecturerClasses",consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    public List<ClassEntity> getClassList(@RequestBody Map<String,String> request) {
        return classInfoService.getClasses(request.get("username"));
    }

    @PostMapping(value = "/getClassPapers",consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    public List<MinutePaperEntity> getClassPapers(@RequestBody Map<String,String> request) {
        return lecturerInfoService.getClassPapers(request.get("username"),request.get("classCode"));
    }
    @PostMapping(value = "/getTemplates",consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    public List<PaperDetailsWrapper> getTemplates(@RequestBody Map<String,String> request) {
        return lecturerInfoService.getTemplates(request.get("username"));
    }

    @PostMapping(value = "/createPaper",consumes = MediaType.APPLICATION_JSON_VALUE)
    public void createPaper(@RequestBody PaperDetailsWrapper request) {
        lecturerInfoService.create(request,false);
    @PostMapping(value = "/deletePaper",consumes = MediaType.APPLICATION_JSON_VALUE)
    public void deletePaper(@RequestBody Map<String,String> request) {
        lecturerInfoService.delete(request.get("paperId"),false);
    }

    @PostMapping(value = "/createTemplate",consumes = MediaType.APPLICATION_JSON_VALUE)
    public void createTemplate(@RequestBody PaperDetailsWrapper request) {
    @PostMapping(value = "/deleteTemplate",consumes = MediaType.APPLICATION_JSON_VALUE)
    public void deleteTemplate(@RequestBody Map<String,String> request) {
        lecturerInfoService.delete(request.get("paperId"),true);
    }

    @PostMapping(value = "/getResponseData",consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
    public List<ResponseGraphDetails> getResponseData(@RequestBody Map<String,String> request) {
        return graphDataService.getResponseGraphData(request.get("username"));
    }

    @PostMapping(value = "/getStudentResponseData",consumes = MediaType.APPLICATION_JSON_VALUE,  produces = MediaType.APPLICATION_JSON_VALUE)
    public List<StudentGraphDetails> getStudentResponseData(@RequestBody Map<String,String> request) {
        return graphDataService.getStudentGraphData(request.get("classCode"));
    }

    @GetMapping(value = "/wordCloudTest", produces = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    public List<WordDetails> getStudentResponseData() {
        return sentimentService.generateWordCloud(39); //TODO - CHANGE TO POSTMAPPING AND ADD CONSUME MEDIATYPE
    }