Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package returnitRest;
- import com.fasterxml.jackson.core.JsonGenerator;
- import com.fasterxml.jackson.core.JsonProcessingException;
- import com.fasterxml.jackson.databind.JsonSerializer;
- import com.fasterxml.jackson.databind.SerializerProvider;
- import java.io.IOException;
- import java.util.Map;
- public class MapBarPlot extends JsonSerializer<Map<?, ?>> {
- @Override
- public void serialize(Map<?, ?> value, JsonGenerator generator,
- SerializerProvider serializers) throws IOException,
- JsonProcessingException {
- generator.writeStartArray();
- for (Map.Entry<?, ?> entry : value.entrySet()){
- generator.writeStartObject();
- generator.writeObjectField("key", entry.getKey());
- generator.writeObjectField("value", entry.getValue());
- generator.writeEndObject();
- }
- generator.writeEndArray();
- }
- }
- =========================================================================================
- package returnitRest;
- import com.fasterxml.jackson.databind.annotation.JsonSerialize;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.time.LocalDateTime;
- import java.util.HashMap;
- import java.util.Map;
- public class DbReport implements AutoCloseable {
- private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
- private static final String DB_URL = "jdbc:mysql://localhost/returnit";
- private static final String USER = "returnit";
- private static final String PASS = "returnit";
- private java.sql.Connection conn = null;
- @JsonSerialize(using = MapBarPlot.class)
- private Map<String, Integer> recipes;
- public DbReport() throws SQLException {
- try {
- Class.forName(JDBC_DRIVER);
- conn = DriverManager.getConnection(DB_URL, USER, PASS);
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- }
- }
- @Override
- public void close() {
- try {
- this.conn.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- public Map<String, Integer> ereturnsPerClient(LocalDateTime from , LocalDateTime to) throws SQLException {
- Map<String, Integer> bpData = new HashMap<String, Integer>();
- String sql = "SELECT firstName \"client\", COUNT(client) \"num_ereturns\" " +
- "FROM ereturn, user " +
- "WHERE client = idUser GROUP BY client";
- PreparedStatement stmt = conn.prepareStatement(sql);
- ResultSet rs = stmt.executeQuery();
- while (rs.next()) {
- bpData.put(rs.getString("client"), rs.getInt("num_ereturns"));
- }
- return bpData;
- }
- }
- ====================================================================================
- package returnitRest;
- import javax.ws.rs.*;
- import javax.ws.rs.core.MediaType;
- import javax.ws.rs.core.Response;
- import java.sql.SQLException;
- import java.util.Map;
- import java.util.logging.Logger;
- @Path("/report")
- public class ReportResource {
- private static final Logger logger = Logger.getLogger(UserResource.class.getName());
- @POST
- @Path("/numEreturnAllClients")
- @Produces(MediaType.APPLICATION_JSON)
- public Response numEreturnAllClients() throws SQLException {
- logger.info("Getting number of ereturn per client for all clients (numEreturnAllClients) ... ");
- try{
- DbReport q = new DbReport();
- Map<String, Integer> balPlotData = q.ereturnsPerClient(null, null);
- return Response.ok(balPlotData).build();
- }catch (SQLException e){
- return Response.serverError().entity(e).build();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement