Error error = new Error("Id field is empty");
error.apply(request, response);
return;
}*/
SharedContent sharedContent = new Message().new SharedContent();
sharedContent.type = contentType;
sharedContent.id = id;
sharedContent.source = source;
sharedContents.add(sharedContent);
}
ArrayList<User> receivers = new ArrayList<User>();
for(JsonElement element : body.get("receivers").getAsJsonArray()) {
JsonObject toElement = element.getAsJsonObject();
Long userId = toElement.get("id").getAsLong();
String firstName = toElement.get("firstName").getAsString();
if(userId == null) {
Error error = new Error("The id field of " + firstName + " is empty.");
error.apply(request, response);
return;
}
User to = User.findById(userId);
if(to == null) {
Error error = new Error(firstName + " is not a registered user.");
error.apply(request, response);
return;
}
receivers.add(to);
}
// INFO: Se crean dos mensajes para diferenciar las carpetas de outbox e inbox. Asi un usuario si lo elimina de la suya permanece en la otra.
//Se inserta un mensaje que pertenece al emisor. // TODO esta parte esta duplicada, deberia ir fuera de la iteracion de receivers. Problema el to (deberia de ser una lista)
Message message = new Message();
message.from = from;
//message.to = receivers;
message.text = text;
message.contents = sharedContents;
for(User receiver : receivers) {
message.addReceiver(receiver);
}
message.insert();
// Create the outbox message
OutboxMessage outMessage = new OutboxMessage(from, message);
outMessage.save();