HandlerPreconditions.requireSingular(userIds, "Multiple userIds not supported");
UserId user = request.getUsers().iterator().next();
if (msgCollId == null) {
throw new ProtocolException(HttpServletResponse.SC_BAD_REQUEST,
"A message collection is required");
}
if (messageIds.isEmpty()) {
// No message IDs specified, this is a PUT to a message collection
MessageCollection msgCollection = request.getTypedParameter("entity", MessageCollection.class);
if (msgCollection == null) {
throw new ProtocolException(HttpServletResponse.SC_BAD_REQUEST,
"cannot parse message collection");
}
// TODO, do more validation.
return service.modifyMessageCollection(user, msgCollection, request.getToken());
}
HandlerPreconditions.requireSingular(messageIds, "Only one messageId at a time");
Message message = request.getTypedParameter("entity", Message.class);
// TODO, do more validation.
if (message == null || message.getId() == null) {
throw new ProtocolException(HttpServletResponse.SC_BAD_REQUEST,
"cannot parse message or missing ID");
}
return service.modifyMessage(user, msgCollId, messageIds.get(0), message, request.getToken());
}