fixed gettng input from the message
This commit is contained in:
@@ -10,7 +10,6 @@ class Command{
|
||||
this.requireInput = false;
|
||||
this.inputPos = [];
|
||||
this._requireInput();
|
||||
this._getInputPosition();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -76,19 +75,6 @@ class Command{
|
||||
this.requireInput = matched != null && matched.length > 1;
|
||||
}
|
||||
|
||||
_getInputPosition(){
|
||||
let splitCommand = this.command.split(' ');
|
||||
let inputPos = [];
|
||||
for (let i = 0; i < splitCommand.length; i++)
|
||||
{
|
||||
if(splitCommand[i].startsWith('<')){
|
||||
inputPos.push(i);
|
||||
}
|
||||
}
|
||||
|
||||
this.inputPos = inputPos;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns an array of string representing the inputs of the command
|
||||
* @param {string} message
|
||||
@@ -96,9 +82,14 @@ class Command{
|
||||
getInput(message){
|
||||
|
||||
let splitMsg = message.split(' ');
|
||||
let input = [];
|
||||
for(let pos of this.inputPos){
|
||||
input.push(splitMsg[pos]);
|
||||
let splitCommand = this.command.split(' ');
|
||||
let input = {};
|
||||
|
||||
for(let i = 0; i < splitMsg.length; i++){
|
||||
if(splitCommand[i].startsWith('<')){
|
||||
let key = splitCommand[i].slice(1, splitCommand[i].length-1);
|
||||
input[key] = splitMsg[i];
|
||||
}
|
||||
}
|
||||
|
||||
return input;
|
||||
|
||||
@@ -11,7 +11,7 @@ const commands = [
|
||||
command: 'wg',
|
||||
|
||||
//function to be executed
|
||||
callback : () => {
|
||||
callback : (input) => {
|
||||
|
||||
logic.onWG();
|
||||
//mesage to be sent to the user
|
||||
@@ -36,7 +36,7 @@ module.exports= onMessage = (message, client) => {
|
||||
if(message.body.startsWith("wg"))
|
||||
{
|
||||
for (let c of commands){
|
||||
if(c.command == message.body)
|
||||
if(c.equals(message.body))
|
||||
{
|
||||
command = c;
|
||||
break;
|
||||
@@ -44,7 +44,12 @@ module.exports= onMessage = (message, client) => {
|
||||
}
|
||||
|
||||
if(command != null){
|
||||
let messageToBeSent = command.callback();
|
||||
let input = {};
|
||||
if(command.requireInput){
|
||||
input = command.getInput();
|
||||
}
|
||||
|
||||
let messageToBeSent = command.callback(input);
|
||||
for (let msg of messageToBeSent)
|
||||
{
|
||||
client.sendMessage(message.from, msg, new Object());
|
||||
|
||||
@@ -119,19 +119,6 @@ describe('Command', () => {
|
||||
|
||||
expect(a.equals(message)).to.false;
|
||||
});
|
||||
|
||||
it('Test : _getInputPosition()', () => {
|
||||
|
||||
let a = new Command({
|
||||
command: "wg create <id>",
|
||||
callback: () => {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
expect(a.inputPos[0]).to.equal(2);
|
||||
|
||||
})
|
||||
|
||||
it('Test : getInput() with 1 input', () => {
|
||||
|
||||
@@ -144,7 +131,7 @@ describe('Command', () => {
|
||||
}
|
||||
});
|
||||
|
||||
expect(a.getInput(message)[0]).to.equal('p12');
|
||||
expect(a.getInput(message)['id']).to.equal('p12');
|
||||
});
|
||||
|
||||
it('Test : getInput() with 2 input', () => {
|
||||
@@ -158,10 +145,10 @@ describe('Command', () => {
|
||||
}
|
||||
});
|
||||
|
||||
expect(a.getInput(message)[0]).to.equal('p12');
|
||||
expect(a.getInput(message)[1]).to.equal('pikachu');
|
||||
expect(a.getInput(message)['id']).to.equal('p12');
|
||||
expect(a.getInput(message)['name']).to.equal('pikachu');
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user