Search in sources :

Example 1 with io.kamax.matrix.client._MatrixClient

use of io.kamax.matrix.client._MatrixClient in project mxisd by kamax-io.

the class InviteCommandProcessor method process.

@Override
public void process(Mxisd m, _MatrixClient client, _MatrixRoom room, CommandLine cmdLine) {
    if (cmdLine.getArgs().length < 2) {
        room.sendNotice(buildHelp());
    } else {
        String arg = cmdLine.getArgList().get(1);
        String response;
        if (StringUtils.equals("list", arg)) {
            StrBuilder b = new StrBuilder();
            List<IThreePidInviteReply> invites = m.getInvite().listInvites();
            if (invites.isEmpty()) {
                b.appendln("No invites!");
                response = b.toString();
            } else {
                b.appendln("Invites:");
                for (IThreePidInviteReply invite : invites) {
                    b.appendNewLine().append("ID: ").append(invite.getId());
                    b.appendNewLine().append("Room: ").append(invite.getInvite().getRoomId());
                    b.appendNewLine().append("Medium: ").append(invite.getInvite().getMedium());
                    b.appendNewLine().append("Address: ").append(invite.getInvite().getAddress());
                    b.appendNewLine();
                }
                response = b.appendNewLine().append("Total: " + invites.size()).toString();
            }
        } else if (StringUtils.equals("show", arg)) {
            if (cmdLine.getArgList().size() < 3) {
                response = buildHelp();
            } else {
                String id = cmdLine.getArgList().get(2);
                IThreePidInviteReply invite = m.getInvite().getInvite(id);
                StrBuilder b = new StrBuilder();
                b.appendln("Details for Invitation #" + id);
                b.appendNewLine().append("Room: ").append(invite.getInvite().getRoomId());
                b.appendNewLine().append("Sender: ").append(invite.getInvite().getSender().toString());
                b.appendNewLine().append("Medium: ").append(invite.getInvite().getMedium());
                b.appendNewLine().append("Address: ").append(invite.getInvite().getAddress());
                b.appendNewLine().append("Display name: ").append(invite.getDisplayName());
                b.appendNewLine().appendNewLine().append("Properties:");
                invite.getInvite().getProperties().forEach((k, v) -> {
                    b.appendNewLine().append("\t").append(k).append("=").append(v);
                });
                b.appendNewLine();
                response = b.toString();
            }
        } else if (StringUtils.equals("revoke", arg)) {
            if (cmdLine.getArgList().size() < 3) {
                response = buildHelp();
            } else {
                m.getInvite().expireInvite(cmdLine.getArgList().get(2));
                response = "OK";
            }
        } else {
            response = buildError("Unknown invite action: " + arg, true);
        }
        room.sendNotice(response);
    }
}
Also used : StrBuilder(org.apache.commons.lang.text.StrBuilder) StringUtils(org.apache.commons.lang.StringUtils) List(java.util.List) io.kamax.matrix.client._MatrixClient(io.kamax.matrix.client._MatrixClient) io.kamax.matrix.hs._MatrixRoom(io.kamax.matrix.hs._MatrixRoom) IThreePidInviteReply(io.kamax.mxisd.invitation.IThreePidInviteReply) CommandLine(org.apache.commons.cli.CommandLine) Mxisd(io.kamax.mxisd.Mxisd) IThreePidInviteReply(io.kamax.mxisd.invitation.IThreePidInviteReply) StrBuilder(org.apache.commons.lang.text.StrBuilder)

Aggregations

io.kamax.matrix.client._MatrixClient (io.kamax.matrix.client._MatrixClient)1 io.kamax.matrix.hs._MatrixRoom (io.kamax.matrix.hs._MatrixRoom)1 Mxisd (io.kamax.mxisd.Mxisd)1 IThreePidInviteReply (io.kamax.mxisd.invitation.IThreePidInviteReply)1 List (java.util.List)1 CommandLine (org.apache.commons.cli.CommandLine)1 StringUtils (org.apache.commons.lang.StringUtils)1 StrBuilder (org.apache.commons.lang.text.StrBuilder)1