sendingnetwork-bot-sdk
Version:
TypeScript/JavaScript SDK for SDN bots
91 lines • 3.79 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.execCommand = void 0;
/* Commands:
"room list -- List rooms"
"room create <name> -- Create new room"
"room invite <roomId> <userId> -- Invite user to room"
"room join <roomId> -- Join room by id"
"room kick <roomId> <userId> -- Kick user by userId"
"room leave <roomId> -- Leave room by id"
"room members <roomId> -- List room members"
"room send <roomId> <message text> -- Send a text message"
*/
function execCommand(client, command) {
return __awaiter(this, void 0, void 0, function* () {
let cmdParts = command.split(/\s/);
if (cmdParts.length < 2) {
return false;
}
if (cmdParts[0] != "room") {
return false;
}
let action = cmdParts[1];
switch (action) {
case "list":
let rooms = yield client.getJoinedRooms();
console.log(rooms);
break;
case "members":
let roomId = cmdParts[2];
let membershipEvents = yield client.getRoomMembersByMembership(roomId, "join");
let memberIds = membershipEvents.map(event => event.membershipFor);
console.log(memberIds);
break;
case "create":
let roomName = cmdParts[2];
let createRoomId = yield client.createRoom({ name: roomName });
console.log(createRoomId);
break;
case "invite":
let inviteRoomId = cmdParts[2];
let inviteUserId = cmdParts[3];
yield client.inviteUser(inviteUserId, inviteRoomId);
console.log("invite success!");
break;
case "revoke":
let revokeRoomId = cmdParts[2];
let revokeUserId = cmdParts[3];
yield client.revoke(revokeUserId, revokeRoomId);
console.log("revoke success!");
break;
case "kick":
let kickRoomId = cmdParts[2];
let kickUserId = cmdParts[3];
yield client.kickUser(kickUserId, kickRoomId);
console.log("kick success!");
break;
case "join":
let joinRoomId = cmdParts[2];
yield client.joinRoom(joinRoomId);
console.log("join success!");
break;
case "leave":
let leaveRoomId = cmdParts[2];
yield client.leaveRoom(leaveRoomId);
console.log("leave success!");
break;
case "send":
let sendRoomId = cmdParts[2];
let message = cmdParts[3];
let eventId = yield client.sendText(sendRoomId, message);
console.log(eventId);
break;
default:
console.log("unknown command");
break;
}
return true;
});
}
exports.execCommand = execCommand;
//# sourceMappingURL=commands.js.map