package com.andreiolar.abms.server;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.andreiolar.abms.client.rpc.DBReplyToConversation;
import com.andreiolar.abms.shared.ConversationMessage;
import com.andreiolar.abms.shared.ReplyMessage;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
public class DBReplyToConversationImpl extends RemoteServiceServlet implements DBReplyToConversation {
private static final long serialVersionUID = 7094452124543422116L;
@Override
public ConversationMessage replyToConversation(ReplyMessage message) throws Exception {
Connection conn = null;
PreparedStatement stmt = null;
DateFormat dateFormat = new SimpleDateFormat("E, dd/MM/yyyy HH:mm:ss");
Date date = new Date();
String formattedDate = dateFormat.format(date);
ConversationMessage conversationMessage;
try {
conn = MyConnection.getConnection();
try {
String q = "insert into conversation_reply(reply, username, date, conv_id_fk) values(?,?,?,?)";
stmt = conn.prepareStatement(q, Statement.RETURN_GENERATED_KEYS);
stmt.setString(1, message.getText());
stmt.setString(2, message.getUsername());
stmt.setString(3, formattedDate);
stmt.setInt(4, message.getConvId());
stmt.executeUpdate();
ResultSet generatedKeys = stmt.getGeneratedKeys();
generatedKeys.next();
int lastInserted = generatedKeys.getInt(1);
conversationMessage = new ConversationMessage(String.valueOf(lastInserted), message.getUsername(), message.getText(), formattedDate);
} catch (Exception ex) {
throw new RuntimeException("Something went wrong: " + ex.getMessage(), ex);
} finally {
stmt.close();
}
} catch (Exception ex) {
throw new RuntimeException("Something went wrong: " + ex.getMessage(), ex);
} finally {
conn.close();
}
return conversationMessage;
}
}