/** Returns all persisted JSON messages */ public Result allMessage() { List<String> messages = redisAccess.get( jedis -> jedis .lrange(KEY_MESSAGE_LIST, 0, -1) .stream() .map(json -> Message.fromJson(json).message) .collect(toList())); return ok(Json.toJson(messages)); }
/** * Accepts a JSON message and publishes it on the {@link services.RedisAccess#CHANNEL_MESSAGES} * pub/sub channel * */ public Result message() { Optional<JsonNode> json = getValidJson(request().body()); if (!json.isPresent()) { return badRequest(); } redisAccess.run( jedis -> { Long subscribers = jedis.publish(CHANNEL_MESSAGES, json.get().toString()); logger.debug("message published to {} subscribers", subscribers); }); return ok(); }