package com.syzton.sunread.controller.fish;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.syzton.sunread.dto.fish.StudentFishDTO;
import com.syzton.sunread.model.fish.Fish;
import com.syzton.sunread.service.fish.FishService;
/**
* Created by jerry on 4/21/15.
*/
@Controller
@RequestMapping("/api")
public class FishController {
FishService fishService;
@Autowired
public FishController(FishService fishService) {
this.fishService = fishService;
}
@RequestMapping(value = "/fishes", method = RequestMethod.POST)
@ResponseBody
public void addFish(@RequestBody Fish fish) {
fishService.addFish(fish);
}
@RequestMapping(value = "/fishes/{fishId}", method = RequestMethod.DELETE)
@ResponseBody
public void deleteFish(@PathVariable("fishId") long fishId) {
fishService.deleteFish(fishId);
}
@RequestMapping(value = "/fishes/{fishId}", method = RequestMethod.PUT)
@ResponseBody
public void updateFishPic(@PathVariable("fishId") long fishId, @RequestParam("fishPic") String fishPic) {
fishService.updateFishPic(fishId, fishPic);
}
@RequestMapping(value = "/students/{studentId}/fishes/{fishId}", method = RequestMethod.PUT)
@ResponseBody
public void saveOrUpdateStudentFish(@PathVariable("studentId") long studentId, @PathVariable("fishId") long fishId) {
fishService.saveOrUpdateStudentFish(studentId, fishId);
}
@RequestMapping(value = "/students/{studentId}/fishes", method = RequestMethod.GET)
@ResponseBody
public Fish getCurrentFish(@PathVariable("studentId") long studentId) {
return fishService.findFishByStudentId(studentId);
}
@RequestMapping(value = "/fishes/{fishId}", method = RequestMethod.GET)
@ResponseBody
public Fish getFish(@PathVariable("fishId") long fishId) {
return fishService.findFish(fishId);
}
@RequestMapping(value = "/fishes", method = RequestMethod.GET)
@ResponseBody
public List<Fish> getAllFishes() {
return fishService.findAllFish();
}
@RequestMapping(value = "/clazzs/{clazzId}/fishes", method = RequestMethod.GET)
@ResponseBody
public List<StudentFishDTO> getStudentFishDTO(@PathVariable("clazzId") long clazzId) {
return fishService.getFishStudentDTOsByClazzId(clazzId);
}
}