Example #1
0
 private Response doGet(HttpExchange httpExchange) {
   String query = httpExchange.getRequestURI().getQuery();
   if (query == null) {
     return Response.badRequest("Absent query in request");
   }
   Map<String, String> map = queryToMap(query);
   String token = map.get(Constants.REQUEST_PARAM_TOKEN);
   if (StringUtils.isEmpty(token)) {
     return Response.badRequest("Token query parameter is required");
   }
   try {
     int index = MessageHelper.parseToken(token);
     if (index > messageStorage.size()) {
       return Response.badRequest(
           String.format(
               "Incorrect token in request: %s. Server does not have so many messages", token));
     }
     Portion portion = new Portion(index);
     List<Message> messages = messageStorage.getPortion(portion);
     String responseBody = MessageHelper.buildServerResponseBody(messages, messageStorage.size());
     return Response.ok(responseBody);
   } catch (InvalidTokenException e) {
     return Response.badRequest(e.getMessage());
   }
 }