AOTG API: Delete Debtor: Difference between revisions

From AutoCount Resource Center
Content added Content deleted
No edit summary
 
(8 intermediate revisions by the same user not shown)
Line 3: Line 3:
*'''debtorId''' is a unique identifier created in AOTG.
*'''debtorId''' is a unique identifier created in AOTG.
*See [[AOTG API: Get List of Debtor#Response_From_Result|Get List of Debtor]] on how to obtain '''Id''' (that is created in AOTG).
*See [[AOTG API: Get List of Debtor#Response_From_Result|Get List of Debtor]] on how to obtain '''Id''' (that is created in AOTG).
{{AOTGApiMethodsSpec|DELETE|/api/public/v1/Debtor/{debtorId} }}
{{AOTGApiMethodsSpec|DELETE|/api/public/v1/Debtor/{debtorId}|Params=None}}


==API Request Flow==
==API Request Flow==
[[File:AOTGApiCompleteOrFailFlow.png|link=]]
[[File:AOTGApiCompleteOrFailFlow.png|link=]]
#Submit Delete request of a debtor with an Id of the debtor
#Submit Delete request of a debtor with an Id of the debtor
#Check the successful request status, if the action is completed or failed.
#Check the successful request status, if the action is '''Completed''' or '''Failed'''.
#To get the failed reason, use RESULT method to retrieve the message of completed or failed.
#To get the failed reason, use RESULT method to retrieve the message of completed or failed.


Line 165: Line 165:
}}
}}


====Response====
====Response Status====
{{AOTGResponseStatus|"f0268032-c161-4548-a74a-adb7143274a6"}}
200 OK
=====Completed status=====
*'''Completed''' status Indicates that the DELETE request has been performed and succeeded.
<syntaxhighlight lang="json-object">
{
"RequestId": "f0268032-c161-4548-a74a-adb7143274a6",
"Status": "Completed"
}
</syntaxhighlight>
=====Failed status=====
*'''Failed''' status Indicates that the DELETE request has been performed but has error.
<syntaxhighlight lang="json-object">
{
"RequestId": "f0268032-c161-4548-a74a-adb7143274a6",
"Status": "Failed"
}
</syntaxhighlight>


==Use RESULT method to get the failed reason of DELETE request==
==Use RESULT method to get the failed reason of DELETE request==
===Code Snippets===

{{AOTGApiCodeSnippetTab
{{AOTGApiCodeSnippetTab
|PHPHttp=
|PHPHttp=
Line 251: Line 235:
}}
}}


<br/>
===Response Successful from HTTP RESULT===
====Response Successful from HTTP RESULT====
200 OK
200 OK
===Result of Failed reason===
====Result of Failed reason====
====Debtor record not found====
=====Debtor record not found=====
<tabber>
<tabber>
Body=
Body=
Line 290: Line 275:
</tabber>
</tabber>


====Account in use, can't delete debtor====
=====Account in use, can't delete debtor=====
<tabber>
<tabber>
Body=
Body=

Latest revision as of 04:34, 28 March 2019

Delete Debtor

Delete a specific Debtor.

  • debtorId is a unique identifier created in AOTG.
  • See Get List of Debtor on how to obtain Id (that is created in AOTG).

API Method

Http Method: DELETE
Method: /api/public/v1/Debtor/{debtorId}
Content-Type: application/json
Parameters: None

API Request Flow

  1. Submit Delete request of a debtor with an Id of the debtor
  2. Check the successful request status, if the action is Completed or Failed.
  3. To get the failed reason, use RESULT method to retrieve the message of completed or failed.

Code Snippets

  • Add header of "SOTC_AUTH", and assign value of AccessToken.

<?php

$request = new HttpRequest();
$request->setUrl('http://aotg.cloud:8080/api/public/v1/Debtor/{[%21MzAwLUEwMDE%21]}');
$request->setMethod(HTTP_METH_DELETE);

$request->setHeaders(array(
  'cache-control' => 'no-cache',
  'SOTC_AUTH' => 'SAMc13a36d2-a139-e911-b8b3-000d3aa04f3d'
));

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}

var client = new RestClient("http://aotg.cloud:8080/api/public/v1/Debtor/{[%21MzAwLUEwMDE%21]}");
var request = new RestRequest(Method.DELETE);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("SOTC_AUTH", "SAMc13a36d2-a139-e911-b8b3-000d3aa04f3d");
IRestResponse response = client.Execute(request);

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_PORT => "8080",
  CURLOPT_URL => "http://aotg.cloud:8080/api/public/v1/Debtor/{[%21MzAwLUEwMDE%21]}",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    "SOTC_AUTH: SAMc13a36d2-a139-e911-b8b3-000d3aa04f3d",
    "cache-control: no-cache"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

Code is not available


Response

  • Successful Response indicates DELETE request has been performed.

Response Successful HTTP Request

200 OK

Response Successful Body

  • Id and Name can be used to retrieve the status and reason of the failed status.
{
    "Id": "f0268032-c161-4548-a74a-adb7143274a6",
    "Name": "DeleteDebtor",
    "StartTimestamp": "2019-02-28T05:02:28.7462812Z",
    "EndTimestamp": "2019-02-28T05:02:28.7462812Z"
}
AOTG Cloud Server returns successful response when the request has been performed.

But this response does not indicate the status of the delete.
As such, use RESULT method to acquire the status.

Get Status of the DELETE

Code Snippets

<?php

$request = new HttpRequest();
$request->setUrl('http://aotg.cloud:8080/api/public/v1/Result/f0268032-c161-4548-a74a-adb7143274a6');
$request->setMethod(HTTP_METH_GET);

$request->setHeaders(array(
  'cache-control' => 'no-cache',
  'SOTC_AUTH' => 'SAMc13a36d2-a139-e911-b8b3-000d3aa04f3d'
));

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}

var client = new RestClient("http://aotg.cloud:8080/api/public/v1/Result/f0268032-c161-4548-a74a-adb7143274a6");
var request = new RestRequest(Method.GET);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("SOTC_AUTH", "SAMc13a36d2-a139-e911-b8b3-000d3aa04f3d");
IRestResponse response = client.Execute(request);

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_PORT => "8080",
  CURLOPT_URL => "http://aotg.cloud:8080/api/public/v1/Result/f0268032-c161-4548-a74a-adb7143274a6",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    "SOTC_AUTH: SAMc13a36d2-a139-e911-b8b3-000d3aa04f3d",
    "cache-control: no-cache"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

Code is not available


Response Status

4 possible responses from process status.

InQueue status
  • InQueue status Indicates that the requests to AOTG Server is waiting to be processed.
  • Usually this happen when many requests are called to AOTG Web API in within a second.
    Make sure the request in the loop has pause time,
    or use 'batch' method to process multiple records in single request if applicable.
"RequestId": "f0268032-c161-4548-a74a-adb7143274a6",
"Status": "InQueue"
Processing status
  • Processing status indicates that the request is not complete.
"RequestId": "f0268032-c161-4548-a74a-adb7143274a6",
"Status": "Processing"
Completed status
  • Completed status Indicates that the request has been performed and succeeded.
"RequestId": "f0268032-c161-4548-a74a-adb7143274a6",
"Status": "Completed"
Failed status
  • Failed status indicates that the request has been performed but has error.
"RequestId": "f0268032-c161-4548-a74a-adb7143274a6",
"Status": "Failed"

Use RESULT method to get the failed reason of DELETE request

Code Snippets

<?php

$request = new HttpRequest();
$request->setUrl('http://aotg.cloud:8080/api/public/v1/Result/DeleteDebtor/f0268032-c161-4548-a74a-adb7143274a6/result');
$request->setMethod(HTTP_METH_GET);

$request->setHeaders(array(
  'cache-control' => 'no-cache',
  'SOTC_AUTH' => 'SAMc13a36d2-a139-e911-b8b3-000d3aa04f3d'
));

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}

var client = new RestClient("http://aotg.cloud:8080/api/public/v1/Result/DeleteDebtor/f0268032-c161-4548-a74a-adb7143274a6/result");
var request = new RestRequest(Method.GET);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("SOTC_AUTH", "SAMc13a36d2-a139-e911-b8b3-000d3aa04f3d");
IRestResponse response = client.Execute(request);

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_PORT => "8080",
  CURLOPT_URL => "http://aotg.cloud:8080/api/public/v1/Result/DeleteDebtor/f0268032-c161-4548-a74a-adb7143274a6/result",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    "SOTC_AUTH: SAMc13a36d2-a139-e911-b8b3-000d3aa04f3d",
    "cache-control: no-cache"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

Code is not available



Response Successful from HTTP RESULT

200 OK

Result of Failed reason

Debtor record not found

{
    "RequestId": "f0268032-c161-4548-a74a-adb7143274a6",
    "RequestName": "DeleteDebtor",
    "HostName": "---",
    "IPAddress": "---",
    "RequestTypeName": null,
    "ResultJson": "{\"Message\":\"Debtor record not found (AccNo=300-A002).\",\"StackTrace\":\"   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)\\r\\n   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)\\r\\n   at PSW.SOTC.Accounting.InProcess.AppServiceDispatcher.<DispatchRequest>d__13.MoveNext()\",\"Source\":\"PSW.SOTC.Accounting.Provider.Autocount\"}",
    "RequestParamJson": null,
    "ResultStream": null,
    "ResultTypeName": "PSW.SOTC.Accounting.Provider.Models.ExceptionEntity",
    "Status": "Failed",
    "Version": "1.2.19051.12002",
    "AccountBookInfo": "Plug-In 1.9 Test-1.0.9.77",
    "AccountBookDBInfo": "1.0.9.77",
    "Timestamp": "2019-02-28T04:52:00.3825908Z",
    "ResultedTimestamp": null,
    "ProcessingInterval": 0.3498795,
    "InQueueInterval": null,
    "ResultFileURL": null
}

{
  "Message": "Debtor record not found (AccNo=300-A002).",
  "StackTrace": "   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)   at PSW.SOTC.Accounting.InProcess.AppServiceDispatcher.<DispatchRequest>d__13.MoveNext()",
  "Source": "PSW.SOTC.Accounting.Provider.Autocount"
}

Account in use, can't delete debtor

{
    "RequestId": "f0268032-c161-4548-a74a-adb7143274a6",
    "RequestName": "DeleteDebtor",
    "HostName": "---",
    "IPAddress": "---",
    "RequestTypeName": null,
    "ResultJson": "{\"Message\":\"Account in use, can't delete debtor.\",\"StackTrace\":\"   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)\\r\\n   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)\\r\\n   at PSW.SOTC.Accounting.InProcess.AppServiceDispatcher.<DispatchRequest>d__13.MoveNext()\",\"Source\":\"PSW.SOTC.Accounting.Provider.Autocount\"}",
    "RequestParamJson": null,
    "ResultStream": null,
    "ResultTypeName": "PSW.SOTC.Accounting.Provider.Models.ExceptionEntity",
    "Status": "Failed",
    "Version": "1.2.19051.12002",
    "AccountBookInfo": "Plug-In 1.9 Test-1.0.9.77",
    "AccountBookDBInfo": "1.0.9.77",
    "Timestamp": "2019-02-28T05:02:31.0804976Z",
    "ResultedTimestamp": null,
    "ProcessingInterval": 0.47969649999999997,
    "InQueueInterval": null,
    "ResultFileURL": null
}

{
  "Message": "Account in use, can't delete debtor.",
  "StackTrace": "   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)   at PSW.SOTC.Accounting.InProcess.AppServiceDispatcher.<DispatchRequest>d__13.MoveNext()",
  "Source": "PSW.SOTC.Accounting.Provider.Autocount"
}


See Also AOTG API


Go to menu

Go to top
Resources For AutoCount Software Developers