Merge pull request #551 from victorsl/BUG-5494

BUG 5494 "Request for a web service function to cancel..." SOLVED
This commit is contained in:
julceslauhub
2012-09-12 14:23:33 -07:00
4 changed files with 366 additions and 36 deletions

View File

@@ -216,42 +216,6 @@ function literalDate($date, $lang='en')
throw $oException;
}
}
/**
* @method
*
* Pauses a specified case.
*
* @name pauseCase
* @label Pause Case
* @link http://wiki.processmaker.com/index.php/ProcessMaker_Functions#pauseCase.28.29
*
* @param string(32) | $sApplicationUID= "" | ID of the case | The unique ID of the case. The UID of the current case can be found in the system variable @@APPLICATION.
* @param string(32) | $iDelegation = 0| Delegation index of the case | The delegation index of the current task in the case.
* @param string(32) | $sUserUID = ""| ID user | The unique ID of the user who will pause the case.
* @param string(32) | $sUnpauseDate = null | Date | Optional parameter. The date in the format 'yyyy-mm-dd' indicating when to unpause the case.
* @return None | $none | None | None
*
*/
function pauseCase($sApplicationUID='', $iDelegation=0, $sUserUID='', $sUnpauseDate=null)
{
//var_dump($sApplicationUID, $iDelegation, $sUserUID, $sUnpauseDate);die(':|');
try {
if ($sApplicationUID == '') {
throw new Exception('The application UID cannot be empty!');
}
if ($iDelegation == 0) {
throw new Exception('The delegation index cannot be 0!');
}
if ($sUserUID == '') {
throw new Exception('The user UID cannot be empty!');
}
G::LoadClass('case');
$oCase = new Cases();
$oCase->pauseCase($sApplicationUID, $iDelegation, $sUserUID, $sUnpauseDate);
} catch (Exception $oException) {
throw $oException;
}
}
/**
* @method
*
@@ -1232,6 +1196,84 @@ function WSCancelCase($caseUid, $delIndex, $userUid)
return $response;
}
/**
* @method
*
* Pauses a specified case.
*
* @name WSPauseCase
* @label WS Pause Case
* @link http://wiki.processmaker.com/index.php/ProcessMaker_Functions#WSPauseCase.28.29
*
* @param string(32) | $caseUid | ID of the case | The unique ID of the case.
* @param int | $delIndex | Delegation index of the case | The delegation index of the current task in the case.
* @param string(32) | $userUid | ID user | The unique ID of the user who will pause the case.
* @param string(32) | $unpauseDate=null | Date | Optional parameter. The date in the format "yyyy-mm-dd" indicating when to unpause the case.
* @return array | $response | WS array | A WS Response associative array.
*
*/
function WSPauseCase($caseUid, $delIndex, $userUid, $unpauseDate=null)
{
$client = WSOpen();
$sessionId = $_SESSION["WS_SESSION_ID"];
$params = array(
"sessionId" => $sessionId,
"caseUid" => $caseUid,
"delIndex" => $delIndex,
"userUid" => $userUid,
"unpauseDate" => $unpauseDate
);
$result = $client->__soapCall("pauseCase", array($params));
$response = array();
$response["status_code"] = $result->status_code;
$response["message"] = $result->message;
$response["time_stamp"] = $result->timestamp;
return $response;
}
/**
* @method
*
* Unpause a specified case.
*
* @name WSUnpauseCase
* @label WS Unpause Case
* @link http://wiki.processmaker.com/index.php/ProcessMaker_Functions#WSUnpauseCase.28.29
*
* @param string(32) | $caseUid | ID of the case | The unique ID of the case.
* @param int | $delIndex | Delegation index of the case | The delegation index of the current task in the case.
* @param string(32) | $userUid | ID user | The unique ID of the user who will unpause the case.
* @return array | $response | WS array | A WS Response associative array.
*
*/
function WSUnpauseCase($caseUid, $delIndex, $userUid)
{
$client = WSOpen();
$sessionId = $_SESSION["WS_SESSION_ID"];
$params = array(
"sessionId" => $sessionId,
"caseUid" => $caseUid,
"delIndex" => $delIndex,
"userUid" => $userUid
);
$result = $client->__soapCall("unpauseCase", array($params));
$response = array();
$response["status_code"] = $result->status_code;
$response["message"] = $result->message;
$response["time_stamp"] = $result->timestamp;
return $response;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/** Local Services Functions **/
@@ -2345,3 +2387,60 @@ function PMFCancelCase($caseUid, $delIndex, $userUid)
}
}
/**
* @method
*
* Pauses a specified case.
*
* @name PMFPauseCase
* @label PMF Pauses a specified case.
*
* @param string(32) | $caseUid | ID of the case | The unique ID of the case.
* @param int | $delIndex | Delegation index of the case | The delegation index of the current task in the case.
* @param string(32) | $userUid | ID user | The unique ID of the user who will pause the case.
* @param string(32) | $unpauseDate=null | Date | Optional parameter. The date in the format "yyyy-mm-dd" indicating when to unpause the case.
* @return int | $result | Result of the pause | Returns 1 if the case is paused successfully; otherwise, returns 0 if an error occurred.
*
*/
function PMFPauseCase($caseUid, $delIndex, $userUid, $unpauseDate=null)
{
G::LoadClass("wsBase");
$ws = new wsBase();
$result = $ws->pauseCase($caseUid, $delIndex, $userUid, $unpauseDate);
if ($result->status_code == 0) {
return 1;
} else {
return 0;
}
}
/**
* @method
*
* Unpause a specified case.
*
* @name PMFUnpauseCase
* @label PMF Unpause a specified case.
*
* @param string(32) | $caseUid | ID of the case | The unique ID of the case.
* @param int | $delIndex | Delegation index of the case | The delegation index of the current task in the case.
* @param string(32) | $userUid | ID user | The unique ID of the user who will unpause the case.
* @return int | $result | Result of the unpause | Returns 1 if the case is unpause successfully; otherwise, returns 0 if an error occurred.
*
*/
function PMFUnpauseCase($caseUid, $delIndex, $userUid)
{
G::LoadClass("wsBase");
$ws = new wsBase();
$result = $ws->unpauseCase($caseUid, $delIndex, $userUid);
if ($result->status_code == 0) {
return 1;
} else {
return 0;
}
}

View File

@@ -2897,5 +2897,111 @@ class wsBase
return $result;
}
}
/**
* Pause case
* @param string caseUid : ID of the case.
* @param int delIndex : Delegation index of the case.
* @param string userUid : The unique ID of the user who will pause the case.
* @param string unpauseDate : Optional parameter. The date in the format "yyyy-mm-dd" indicating when to unpause
* the case.
* @return $result will return an object
*/
public function pauseCase($caseUid, $delIndex, $userUid, $unpauseDate=null)
{
try {
if (empty($caseUid)) {
$result = new wsResponse(100, G::LoadTranslation("ID_REQUIRED_FIELD") . " caseUid");
return $result;
}
if (empty($delIndex)) {
$result = new wsResponse(100, G::LoadTranslation("ID_REQUIRED_FIELD") . " delIndex");
return $result;
}
if (empty($userUid)) {
$result = new wsResponse(100, G::LoadTranslation("ID_REQUIRED_FIELD") . " userUid");
return $result;
}
if (!empty($unpauseDate)) {
if (!preg_match("/^\d{4}-\d{2}-\d{2}$/", $unpauseDate)) {
$result = new wsResponse(100, G::LoadTranslation("ID_INVALID_DATA") . " $unpauseDate");
return $result;
}
}
$case = new Cases();
$case->pauseCase($caseUid, $delIndex, $userUid, $unpauseDate);
//Response
$res = new wsResponse(0, G::LoadTranslation("ID_COMMAND_EXECUTED_SUCCESSFULLY"));
$result = array(
"status_code" => $res->status_code,
"message" => $res->message,
"timestamp" => $res->timestamp
);
return $result;
} catch (Exception $e) {
$result = wsResponse(100, $e->getMessage());
return $result;
}
}
/**
* Unpause case
* @param string caseUid : ID of the case.
* @param int delIndex : Delegation index of the case.
* @param string userUid : The unique ID of the user who will unpause the case.
* @return $result will return an object
*/
public function unpauseCase($caseUid, $delIndex, $userUid)
{
try {
if (empty($caseUid)) {
$result = new wsResponse(100, G::LoadTranslation("ID_REQUIRED_FIELD") . " caseUid");
return $result;
}
if (empty($delIndex)) {
$result = new wsResponse(100, G::LoadTranslation("ID_REQUIRED_FIELD") . " delIndex");
return $result;
}
if (empty($userUid)) {
$result = new wsResponse(100, G::LoadTranslation("ID_REQUIRED_FIELD") . " userUid");
return $result;
}
$case = new Cases();
$case->unpauseCase($caseUid, $delIndex, $userUid);
//Response
$res = new wsResponse(0, G::LoadTranslation("ID_COMMAND_EXECUTED_SUCCESSFULLY"));
$result = array(
"status_code" => $res->status_code,
"message" => $res->message,
"timestamp" => $res->timestamp
);
return $result;
} catch (Exception $e) {
$result = wsResponse(100, $e->getMessage());
return $result;
}
}
}

View File

@@ -761,6 +761,45 @@
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="pauseCaseRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="sessionId" type="xs:string"/>
<xs:element name="caseUid" type="xs:string"/>
<xs:element name="delIndex" type="xs:string"/>
<xs:element name="userUid" type="xs:string"/>
<xs:element name="unpauseDate" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="pauseCaseResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="status_code" type="xs:integer"/>
<xs:element name="message" type="xs:string"/>
<xs:element name="timestamp" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="unpauseCaseRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="sessionId" type="xs:string"/>
<xs:element name="caseUid" type="xs:string"/>
<xs:element name="delIndex" type="xs:string"/>
<xs:element name="userUid" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="unpauseCaseResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="status_code" type="xs:integer"/>
<xs:element name="message" type="xs:string"/>
<xs:element name="timestamp" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
@@ -965,6 +1004,18 @@
<message name="cancelCaseResponse">
<part name="parameters" element="xs0:cancelCaseResponse"/>
</message>
<message name="pauseCaseRequest">
<part name="parameters" element="xs0:pauseCaseRequest"/>
</message>
<message name="pauseCaseResponse">
<part name="parameters" element="xs0:pauseCaseResponse"/>
</message>
<message name="unpauseCaseRequest">
<part name="parameters" element="xs0:unpauseCaseRequest"/>
</message>
<message name="unpauseCaseResponse">
<part name="parameters" element="xs0:unpauseCaseResponse"/>
</message>
<portType name="ProcessMakerServiceSoap">
<operation name="login">
@@ -1111,6 +1162,14 @@
<input message="xs0:cancelCaseRequest"/>
<output message="xs0:cancelCaseResponse"/>
</operation>
<operation name="pauseCase">
<input message="xs0:pauseCaseRequest"/>
<output message="xs0:pauseCaseResponse"/>
</operation>
<operation name="unpauseCase">
<input message="xs0:unpauseCaseRequest"/>
<output message="xs0:unpauseCaseResponse"/>
</operation>
</portType>
<binding name="ProcessMakerServiceSoap" type="xs0:ProcessMakerServiceSoap">
@@ -1439,6 +1498,24 @@
<soap12:body use="literal"/>
</output>
</operation>
<operation name="pauseCase">
<soap12:operation soapAction="urn:pauseCase" soapActionRequired="true" style="document"/>
<input>
<soap12:body use="literal"/>
</input>
<output>
<soap12:body use="literal"/>
</output>
</operation>
<operation name="unpauseCase">
<soap12:operation soapAction="urn:unpauseCase" soapActionRequired="true" style="document"/>
<input>
<soap12:body use="literal"/>
</input>
<output>
<soap12:body use="literal"/>
</output>
</operation>
</binding>
<service name="ProcessMakerService">

View File

@@ -1102,6 +1102,52 @@ function cancelCase($params)
return $result;
}
function pauseCase($params)
{
$result = isValidSession($params->sessionId);
if ($result->status_code != 0) {
return $result;
}
if (ifPermission($params->sessionId, "PM_CASES") == 0) {
$result = new wsResponse(2, "You do not have privileges");
return $result;
}
$ws = new wsBase();
$result = $ws->pauseCase(
$params->caseUid,
$params->delIndex,
$params->userUid,
((isset($params->unpauseDate))? $params->unpauseDate : null)
);
return $result;
}
function unpauseCase($params)
{
$result = isValidSession($params->sessionId);
if ($result->status_code != 0) {
return $result;
}
if (ifPermission($params->sessionId, "PM_CASES") == 0) {
$result = new wsResponse(2, "You do not have privileges");
return $result;
}
$ws = new wsBase();
$result = $ws->unpauseCase($params->caseUid, $params->delIndex, $params->userUid);
return $result;
}
@@ -1144,5 +1190,7 @@ $server->addFunction("removeUserFromGroup");
$server->addFunction("getCaseNotes");
$server->addFunction("deleteCase");
$server->addFunction("cancelCase");
$server->addFunction("pauseCase");
$server->addFunction("unpauseCase");
$server->handle();