added sendFeedback

This commit is contained in:
betasteward 2015-06-24 15:23:40 -04:00
parent 4ddb871f9b
commit 95e9623186
5 changed files with 55 additions and 17 deletions

View file

@ -203,7 +203,13 @@ public class Client {
}
public boolean sendFeedback(String title, String type, String message, String email) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
try {
clientMessageHandler.sendFeedback(title, type, message, email);
return true;
} catch (Exception ex) {
logger.error("Error sending feedback", ex);
}
return false;
}
public boolean joinTournamentTable(UUID roomId, UUID tableId, String playerName, String human, int i, DeckCardLists importDeck, String text) {

View file

@ -1,6 +1,5 @@
package org.mage.network.handlers.client;
import org.mage.network.model.SetPreferencesRequest;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
import java.io.Serializable;
@ -29,12 +28,14 @@ import org.mage.network.model.LeaveChatRequest;
import org.mage.network.model.LeaveTableRequest;
import org.mage.network.model.PlayerActionRequest;
import org.mage.network.model.RemoveTableRequest;
import org.mage.network.model.SendFeedbackRequest;
import org.mage.network.model.SendPlayerBooleanRequest;
import org.mage.network.model.SendPlayerIntegerRequest;
import org.mage.network.model.SendPlayerManaTypeRequest;
import org.mage.network.model.SendPlayerStringRequest;
import org.mage.network.model.SendPlayerUUIDRequest;
import org.mage.network.model.ServerMessagesRequest;
import org.mage.network.model.SetPreferencesRequest;
import org.mage.network.model.StartMatchRequest;
import org.mage.network.model.SwapSeatRequest;
import org.mage.network.model.TableWaitingRequest;
@ -122,6 +123,10 @@ public class ClientMessageHandler extends SimpleChannelInboundHandler<ClientMess
return uuidQueue.take();
}
public void sendFeedback(String title, String type, String message, String email) throws Exception {
ctx.writeAndFlush(new SendFeedbackRequest(title, type, message, email)).addListener(WriteListener.getInstance());
}
public void joinChat(UUID chatId) {
ctx.writeAndFlush(new JoinChatRequest(chatId)).addListener(WriteListener.getInstance());
}

View file

@ -24,6 +24,7 @@ public interface MageServer {
boolean registerClient(Connection connection, String sessionId, MageVersion version, String host);
void disconnect(String sessionId, DisconnectReason reason);
void setPreferences(String sessionId, UserDataView userDataView);
void sendFeedbackMessage(String sessionId, String title, String type, String message, String email);
void receiveChatMessage(UUID chatId, String sessionId, String message);
void joinChat(UUID chatId, String sessionId);

View file

@ -0,0 +1,28 @@
package org.mage.network.model;
import io.netty.channel.ChannelHandlerContext;
import org.mage.network.interfaces.MageServer;
/**
*
* @author BetaSteward
*/
public class SendFeedbackRequest extends ServerRequest {
private final String title;
private final String type;
private final String message;
private final String email;
public SendFeedbackRequest(String title, String type, String message, String email) {
this.title = title;
this.type = type;
this.message = message;
this.email = email;
}
@Override
public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
server.sendFeedbackMessage(ctx.channel().id().asLongText(), title, type, message, email);
}
}

View file

@ -59,6 +59,7 @@ import mage.server.game.GamesRoom;
import mage.server.game.GamesRoomManager;
import mage.server.game.PlayerFactory;
import mage.server.services.LogKeys;
import mage.server.services.impl.FeedbackServiceImpl;
import mage.server.services.impl.LogServiceImpl;
import mage.server.tournament.TournamentFactory;
import mage.server.util.ConfigSettings;
@ -1009,21 +1010,18 @@ public class ServerMain implements MageServer {
// }
// });
// }
//
// @Override
// public void sendFeedbackMessage(final String sessionId, final String username, final String title, final String type, final String message, final String email) throws MageException {
// if (title != null && message != null) {
// execute("sendFeedbackMessage", sessionId, new Action() {
// @Override
// public void execute() {
// String host = SessionManager.getInstance().getSession(sessionId).getHost();
// FeedbackServiceImpl.instance.feedback(username, title, type, message, email, host);
// LogServiceImpl.instance.log(LogKeys.KEY_FEEDBACK_ADDED, sessionId, username, host);
// }
// });
// }
// }
//
@Override
public void sendFeedbackMessage(final String sessionId, final String title, final String type, final String message, final String email) {
if (title != null && message != null) {
Session session = SessionManager.getInstance().getSession(sessionId);
String host = session.getHost();
String username = UserManager.getInstance().getUser(session.getUserId()).getName();
FeedbackServiceImpl.instance.feedback(username, title, type, message, email, host);
LogServiceImpl.instance.log(LogKeys.KEY_FEEDBACK_ADDED, sessionId, username, host);
}
}
// @Override
// public void sendBroadcastMessage(final String sessionId, final String message) throws MageException {
// if (message != null) {