package com.andreiolar.abms.server;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.andreiolar.abms.client.rpc.DBGetComplaintInfo;
import com.andreiolar.abms.shared.ComplaintInfo;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
public class DBGetComplaintInfoImpl extends RemoteServiceServlet implements DBGetComplaintInfo {
private static final long serialVersionUID = -7333623300241523431L;
public DBGetComplaintInfoImpl() {
}
@Override
public List<ComplaintInfo> getComplaintInfo() throws Exception {
List<ComplaintInfo> complaints = new ArrayList<ComplaintInfo>();
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
conn = MyConnection.getConnection();
try {
String q = "select complaints.complaint_to, complaints.date, complaints.id, complaints.phone_number, concat(user_info.first_name, ' ', user_info.last_name) as name from complaints inner join user_info on complaints.username=user_info.username";
stmt = conn.prepareStatement(q);
rs = stmt.executeQuery();
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String phoneNumber = rs.getString("phone_number");
Date date = rs.getDate("date");
String complaintTo = rs.getString("complaint_to");
ComplaintInfo complaintInfo = new ComplaintInfo(String.valueOf(id), name, phoneNumber, date.toString(), complaintTo);
complaints.add(complaintInfo);
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
rs.close();
stmt.close();
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
conn.close();
}
if (complaints == null || complaints.isEmpty()) {
throw new Exception("Error retrieving complaints!");
}
return complaints;
}
}