org.kde.brooklyn.RocketChatMessage Maven / Gradle / Ivy
/*
* Copyright 2017 Davide Riva [email protected]
*
* Permission to use, copy, modify, and distribute this software
* and its documentation for any purpose and without fee is hereby
* granted, provided that the above copyright notice appear in all
* copies and that both that the copyright notice and this
* permission notice and warranty disclaimer appear in supporting
* documentation, and that the name of the author not be used in
* advertising or publicity pertaining to distribution of the
* software without specific, written prior permission.
*
* The author disclaim all warranties with regard to this
* software, including all implied warranties of merchantability
* and fitness. In no event shall the author be liable for any
* special, indirect or consequential damages or any damages
* whatsoever resulting from loss of use, data or profits, whether
* in an action of contract, negligence or other tortious action,
* arising out of or in connection with the use or performance of
* this software.
*/
package org.kde.brooklyn;
import org.json.simple.JSONObject;
import java.util.Optional;
public class RocketChatMessage {
public String id;
public String roomId;
public String username;
public String msg;
public Optional attachment = Optional.empty();
public static RocketChatMessage parse(final JSONObject message) {
final RocketChatMessage output = new RocketChatMessage();
final JSONObject user = (JSONObject) message.get("u");
output.id = (String) message.get("_id");
output.roomId = (String) message.get("rid");
output.username = (String) user.get("username");
output.msg = (String) message.get("msg");
final String fileKey = "file";
if (message.containsKey(fileKey)) {
final JSONObject file = (JSONObject) message.get(fileKey);
final String fileId = (String) file.get("_id");
final String fileName = (String) file.get("name");
final RocketChatAttachment attachment = new RocketChatAttachment();
attachment.id = fileId;
attachment.title = fileName;
output.attachment = Optional.of(attachment);
}
return output;
}
}