package hu.ppke.itk.itkStock.nio.protocol;
import java.sql.SQLException;
import hu.ppke.itk.itkStock.client.watcherClient.ClientsideWatcher;
import hu.ppke.itk.itkStock.client.watcherClient.SerializationTools;
import hu.ppke.itk.itkStock.server.db.stockWatcher.WatcherManager;
public class ResponseWatcherRegisterCommand extends
AbstractProtocolCommandWorker {
private WatcherManager wm;
public ResponseWatcherRegisterCommand(WatcherManager wm) {
this.wm = wm;
}
@Override
public ProtocolMessage response(ProtocolMessage msg) {
byte[] bytes = msg.toByteArray();
ClientsideWatcher cw = (ClientsideWatcher) SerializationTools.bytesToObject(bytes);
try {
if(!wm.getWatcherByUserIdStockType(cw.getUserId(), cw.getPaperName(), cw.getBoundType())) {
// TODO: ellenőrizni, hogy megfelelőek-e a határok, az árakat tartalmazó map még nincs implementálva
wm.addWatcher(cw.getUserId(), cw.getPaperName(), cw.getBoundValue(), cw.getBoundType());
return new ProtocolMessage(ProtocolTools.registerWatcherResponse, "success".getBytes());
} else
return new ProtocolMessage(ProtocolTools.registerWatcherResponse, "failed - already exists".getBytes());
} catch (SQLException e) {
return new ProtocolMessage(ProtocolTools.registerWatcherResponse, "failed - sql error".getBytes());
}
}
}