以编程方式在Mantis中创建问题

时间:2015-03-10 04:34:58

标签: node.js soap soap-client

我正在编写一个小node.js脚本,它将运行多个命令&如果任何一个失败,它将报告一个问题。我使用以下代码报告mantis bugtracker中的问题。 Mantis bug跟踪器附带了一堆SOAP api来做这样的事情。 http://www.mantisbt.org/bugs/api/soap/mantisconnect.php?wsdl#op.idp90022480

var soap = require('soap');
  var url = 'http://localhost/mantisbt-1.2.19/api/soap/mantisconnect.php?wsdl';
  var user = 'administrator';
  var password = 'root';
  var args = {
        username: user, 
        password: password,         
        project: {
            id: 1
        },
        category: 'General',
        summary: 'Test summary', 
        description: 'test description'
    };  

  soap.createClient(url, function(err, client) {

      client.mc_issue_add(args, function(err1, result) {
        if(err1)
            console.log( err1 );
        else
            console.log('Issue successfully created');
      });

  });

但是我收到了错误日志:

<faultstring>Project \'\' does not exist.</faultstring>

我有一个id为1的项目,&amp;我可以使用php创建相同数据的问题。我的理解是项目ID没有正确发送。等效的PHP代码如下。

$c = new SoapClientDebug("http://localhost/mantisbt-1.2.19/api/soap/mantisconnect.php?wsdl", ['trace' => true]);

$username = 'administrator';
$password = 'root';
$issue = array ( 
    'summary' => 'PHP test issue', 
    'description' => 'PHP test description', 
    'project'=> array(      
        'id'=>1     
    ), 
    'category'=>'General',
);
$c->mc_issue_add($username, $password, $issue);

php代码功能正常。

1 个答案:

答案 0 :(得分:1)

你的args应该是这样的:

var args = {
    username: user, 
    password: password,
    issue: {         
      project: {
        id: 1
      },
      category: 'General',
      summary: 'Test summary', 
      description: 'test description'
    }
};