package com.zenquery.api;
import com.zenquery.model.Query;
import com.zenquery.model.dao.QueryDAO;
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/queries")
public class QueryController {
@Autowired
private QueryDAO queryDAO;
@RequestMapping(value = "/findAll", method = RequestMethod.GET, produces = { "application/xml; charset=utf-8", "application/json; charset=utf-8" })
public @ResponseBody
List<Query> findAll() {
return queryDAO.findAll();
}
@RequestMapping(value = "/{id}", method = RequestMethod.GET, produces = { "application/xml; charset=utf-8", "application/json; charset=utf-8" })
public @ResponseBody
Query find(@PathVariable Integer id) {
return queryDAO.find(id);
}
@RequestMapping(value = "/findByDatabaseConnectionId/{id}", method = RequestMethod.GET, produces = { "application/xml; charset=utf-8", "application/json; charset=utf-8" })
public @ResponseBody
List<Query> findByDatabaseConnectionId(@PathVariable Integer id) {
return queryDAO.findByDatabaseConnectionId(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
Query create(
@RequestBody Query query
) {
Number id = queryDAO.insert(query);
return queryDAO.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 Query query
) {
queryDAO.update(id, query);
return "OK";
}
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
public @ResponseBody String delete(@PathVariable Integer id) {
queryDAO.delete(id);
return "OK";
}
}