use of com.gianlu.pyxreborn.Operations in project PretendYoureXyzzyReborn by devgianlu.
the class ConsoleClient method mainMenu.
private void mainMenu() throws IOException {
ListChoicePrompt.Builder builder = new ListChoicePrompt.Builder();
builder.text("Request operation:").name("req");
for (Operations op : Operations.values()) builder.newItem().name(op.toString()).text(op.name()).add();
ChoiceAnswer answer = prompt.prompt(builder.build());
Operations op = Operations.parse(answer.getName());
JsonObject req = client.createRequest(op);
Pair<String, String> additionalParams;
do {
additionalParams = askForRequestParam();
if (additionalParams != null)
req.addProperty(additionalParams.getKey(), additionalParams.getValue());
} while (additionalParams != null);
System.out.println("REQUEST: " + req);
JsonObject resp;
try {
resp = client.sendMessageBlocking(req);
} catch (InterruptedException | PyxException ex) {
Logger.severe(ex);
mainMenu();
return;
}
System.out.println("RESPONSE: " + resp);
mainMenu();
}
use of com.gianlu.pyxreborn.Operations in project PretendYoureXyzzyReborn by devgianlu.
the class Server method onMessage.
/**
* Picks the right {@link BaseHandler} to perform the requested {@link Operations}.
*/
@Override
@Nullable
protected JsonObject onMessage(WebSocket conn, User user, JsonObject request, JsonObject response) throws GeneralException {
Operations op = Operations.parse(request.get(Fields.OPERATION.toString()).getAsString());
if (op == null)
throw new GeneralException(ErrorCodes.UNKNOWN_OPERATION);
BaseHandler handler;
try {
handler = Handlers.LIST.get(op).newInstance();
} catch (InstantiationException | IllegalAccessException ex) {
throw new GeneralException(ErrorCodes.SERVER_ERROR, ex);
}
return handler.handleRequest(this, request, response);
}
Aggregations