package com.zenquery.api;
import com.zenquery.model.QueryVersion;
import com.zenquery.model.dao.QueryVersionDAO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Controller
@RequestMapping("/api/v1/queryVersions")
public class QueryVersionController {
@Autowired
private QueryVersionDAO queryVersionDAO;
@RequestMapping(value = "/findAll", method = RequestMethod.GET, produces = { "application/xml; charset=utf-8", "application/json; charset=utf-8" })
public @ResponseBody
List<QueryVersion> findAll() {
return queryVersionDAO.findAll();
}
@RequestMapping(value = "/{id}", method = RequestMethod.GET, produces = { "application/xml; charset=utf-8", "application/json; charset=utf-8" })
public @ResponseBody
QueryVersion find(@PathVariable Integer id) {
return queryVersionDAO.find(id);
}
@RequestMapping(value = "/findCurrentByQueryId/{id}", method = RequestMethod.GET, produces = { "application/xml; charset=utf-8", "application/json; charset=utf-8" })
public @ResponseBody
QueryVersion findCurrentByQueryId(@PathVariable Integer id) {
return queryVersionDAO.findCurrentByQueryId(id);
}
@RequestMapping(value = "/findByQueryId/{id}", method = RequestMethod.GET, produces = { "application/xml; charset=utf-8", "application/json; charset=utf-8" })
public @ResponseBody
List<QueryVersion> findByQueryId(@PathVariable Integer id) {
return queryVersionDAO.findByQueryId(id);
}
@RequestMapping(value = "/findPreviousVersionsByQueryId/{id}", method = RequestMethod.GET, produces = { "application/xml; charset=utf-8", "application/json; charset=utf-8" })
public @ResponseBody
List<QueryVersion> findPreviousVersionsByQueryId(@PathVariable Integer id) {
return queryVersionDAO.findPreviousVersionsByQueryId(id);
}
@RequestMapping(
method = RequestMethod.POST,
consumes = { "application/xml; charset=utf-8", "application/json; charset=utf-8" },
produces = { "application/xml; charset=utf-8", "application/json; charset=utf-8" })
public @ResponseBody
QueryVersion create(
@RequestBody QueryVersion queryVersion
) {
Number id = queryVersionDAO.insert(queryVersion);
return queryVersionDAO.find(new Long(id.longValue()).intValue());
}
@RequestMapping(
value = "/{id}",
consumes = { "application/xml; charset=utf-8", "application/json; charset=utf-8" },
method = RequestMethod.PUT)
public @ResponseBody String update(
@PathVariable Integer id,
@RequestBody QueryVersion queryVersion
) {
queryVersionDAO.update(id, queryVersion);
return "OK";
}
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
public @ResponseBody String delete(@PathVariable Integer id) {
queryVersionDAO.delete(id);
return "OK";
}
}