mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-23 10:38:45 +02:00
Added a new web service to create UserRequest tickets (similarly to Incidents tickets). Based on code from Vincenzo Todisco.
SVN:trunk[1408]
This commit is contained in:
@@ -143,6 +143,21 @@
|
||||
<message name="GetVersionResponse">
|
||||
<part name="GetVersionReturn" type="xsd:string"/>
|
||||
</message>
|
||||
<message name="CreateRequestTicket">
|
||||
<part name="login" type="xsd:string"/>
|
||||
<part name="password" type="xsd:string"/>
|
||||
<part name="title" type="xsd:string"/>
|
||||
<part name="description" type="xsd:string"/>
|
||||
<part name="caller" type="typens:ExternalKeySearch"/>
|
||||
<part name="customer" type="typens:ExternalKeySearch"/>
|
||||
<part name="service" type="typens:ExternalKeySearch"/>
|
||||
<part name="service_subcategory" type="typens:ExternalKeySearch"/>
|
||||
<part name="product" type="xsd:string"/>
|
||||
<part name="workgroup" type="typens:ExternalKeySearch"/>
|
||||
<part name="impacted_cis" type="typens:ArrayOfLinkCreationSpec"/>
|
||||
<part name="impact" type="xsd:string"/>
|
||||
<part name="urgency" type="xsd:string"/>
|
||||
</message>
|
||||
<message name="CreateIncidentTicket">
|
||||
<part name="login" type="xsd:string"/>
|
||||
<part name="password" type="xsd:string"/>
|
||||
@@ -161,6 +176,9 @@
|
||||
<message name="CreateIncidentTicketResponse">
|
||||
<part name="CreateIncidentTicketReturn" type="typens:Result"/>
|
||||
</message>
|
||||
<message name="CreateRequestTicketResponse">
|
||||
<part name="CreateRequestTicketReturn" type="typens:Result"/>
|
||||
</message>
|
||||
<message name="SearchObjects">
|
||||
<part name="login" type="xsd:string"/>
|
||||
<part name="password" type="xsd:string"/>
|
||||
@@ -178,6 +196,13 @@
|
||||
<input message="typens:GetVersion"/>
|
||||
<output message="typens:GetVersionResponse"/>
|
||||
</operation>
|
||||
<operation name="CreateRequestTicket">
|
||||
<!-- <wsdl:documentation>
|
||||
Create a ticket, return information about reconciliation on external keys and the created ticket
|
||||
</wsdl:documentation> -->
|
||||
<input message="typens:CreateRequestTicket"/>
|
||||
<output message="typens:CreateRequestTicketResponse"/>
|
||||
</operation>
|
||||
<operation name="CreateIncidentTicket">
|
||||
<wsdl:documentation>
|
||||
Create a ticket, return information about reconciliation on external keys and the created ticket
|
||||
@@ -204,6 +229,15 @@
|
||||
<soap:body namespace="urn:ITop" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
|
||||
</output>
|
||||
</operation>
|
||||
<operation name="CreateRequestTicket">
|
||||
<soap:operation soapAction="urn:WebServiceAction"/>
|
||||
<input>
|
||||
<soap:body namespace="urn:ITop" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
|
||||
</input>
|
||||
<output>
|
||||
<soap:body namespace="urn:ITop" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
|
||||
</output>
|
||||
</operation>
|
||||
<operation name="CreateIncidentTicket">
|
||||
<soap:operation soapAction="urn:WebServiceAction"/>
|
||||
<input>
|
||||
|
||||
@@ -53,6 +53,48 @@ class BasicServices extends WebServicesBase
|
||||
return $sVersionString;
|
||||
}
|
||||
|
||||
public function CreateRequestTicket($sLogin, $sPassword, $sTitle, $sDescription, $oCallerDesc, $oCustomerDesc, $oServiceDesc, $oServiceSubcategoryDesc, $sProduct, $oWorkgroupDesc, $aSOAPImpactedCIs, $sImpact, $sUrgency)
|
||||
{
|
||||
if (!UserRights::CheckCredentials($sLogin, $sPassword))
|
||||
{
|
||||
$oRes = new WebServiceResultFailedLogin($sLogin);
|
||||
$this->LogUsage(__FUNCTION__, $oRes);
|
||||
|
||||
return $oRes->ToSoapStructure();
|
||||
}
|
||||
UserRights::Login($sLogin);
|
||||
|
||||
$aCallerDesc = self::SoapStructToExternalKeySearch($oCallerDesc);
|
||||
$aCustomerDesc = self::SoapStructToExternalKeySearch($oCustomerDesc);
|
||||
$aServiceDesc = self::SoapStructToExternalKeySearch($oServiceDesc);
|
||||
$aServiceSubcategoryDesc = self::SoapStructToExternalKeySearch($oServiceSubcategoryDesc);
|
||||
$aWorkgroupDesc = self::SoapStructToExternalKeySearch($oWorkgroupDesc);
|
||||
|
||||
$aImpactedCIs = array();
|
||||
if (is_null($aSOAPImpactedCIs)) $aSOAPImpactedCIs = array();
|
||||
foreach($aSOAPImpactedCIs as $oImpactedCIs)
|
||||
{
|
||||
$aImpactedCIs[] = self::SoapStructToLinkCreationSpec($oImpactedCIs);
|
||||
}
|
||||
|
||||
$oRes = $this->_CreateResponseTicket
|
||||
(
|
||||
'UserRequest',
|
||||
$sTitle,
|
||||
$sDescription,
|
||||
$aCallerDesc,
|
||||
$aCustomerDesc,
|
||||
$aServiceDesc,
|
||||
$aServiceSubcategoryDesc,
|
||||
$sProduct,
|
||||
$aWorkgroupDesc,
|
||||
$aImpactedCIs,
|
||||
$sImpact,
|
||||
$sUrgency
|
||||
);
|
||||
return $oRes->ToSoapStructure();
|
||||
}
|
||||
|
||||
public function CreateIncidentTicket($sLogin, $sPassword, $sTitle, $sDescription, $oCallerDesc, $oCustomerDesc, $oServiceDesc, $oServiceSubcategoryDesc, $sProduct, $oWorkgroupDesc, $aSOAPImpactedCIs, $sImpact, $sUrgency)
|
||||
{
|
||||
if (!UserRights::CheckCredentials($sLogin, $sPassword))
|
||||
@@ -77,8 +119,9 @@ class BasicServices extends WebServicesBase
|
||||
$aImpactedCIs[] = self::SoapStructToLinkCreationSpec($oImpactedCIs);
|
||||
}
|
||||
|
||||
$oRes = $this->_CreateIncidentTicket
|
||||
$oRes = $this->_CreateResponseTicket
|
||||
(
|
||||
'Incident',
|
||||
$sTitle,
|
||||
$sDescription,
|
||||
$aCallerDesc,
|
||||
@@ -93,11 +136,12 @@ class BasicServices extends WebServicesBase
|
||||
);
|
||||
return $oRes->ToSoapStructure();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Create an incident ticket from a monitoring system
|
||||
* Create an ResponseTicket (Incident or UserRequest) from an external system
|
||||
* Some CIs might be specified (by their name/IP)
|
||||
*
|
||||
* @param string sClass The class of the ticket: Incident or UserRequest
|
||||
* @param string sTitle
|
||||
* @param string sDescription
|
||||
* @param array aCallerDesc
|
||||
@@ -112,7 +156,7 @@ class BasicServices extends WebServicesBase
|
||||
*
|
||||
* @return WebServiceResult
|
||||
*/
|
||||
protected function _CreateIncidentTicket($sTitle, $sDescription, $aCallerDesc, $aCustomerDesc, $aServiceDesc, $aServiceSubcategoryDesc, $sProduct, $aWorkgroupDesc, $aImpactedCIs, $sImpact, $sUrgency)
|
||||
protected function _CreateResponseTicket($sClass, $sTitle, $sDescription, $aCallerDesc, $aCustomerDesc, $aServiceDesc, $aServiceSubcategoryDesc, $sProduct, $aWorkgroupDesc, $aImpactedCIs, $sImpact, $sUrgency)
|
||||
{
|
||||
|
||||
$oRes = new WebServiceResult();
|
||||
@@ -124,7 +168,7 @@ class BasicServices extends WebServicesBase
|
||||
$oMyChange->Set("userinfo", "Administrator");
|
||||
$iChangeId = $oMyChange->DBInsertNoReload();
|
||||
|
||||
$oNewTicket = MetaModel::NewObject('Incident');
|
||||
$oNewTicket = MetaModel::NewObject($sClass);
|
||||
$this->MyObjectSetScalar('title', 'title', $sTitle, $oNewTicket, $oRes);
|
||||
$this->MyObjectSetScalar('description', 'description', $sDescription, $oNewTicket, $oRes);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user