status (GET)
{server}/api/v1/printPdf/status/{jobToken}
Description
(requires v2.8 or later)
Returns the current status of a job as identified by the job token returned (as data.jobIdentifier) from a preceding /PrintPdf/print POST.
Applies to:
- ScriptX.Services for Cloud
- ScriptX.Services for On-Premise Devices (Authorisation header is ignored)
- ScriptX.Services for Windows PC
Request parameters
jobToken (string, required)
- jobToken (string, required)
- The job identifier for the job being queried, as returned by a preceding POST to /PrintPdf/print.
Response model
JobStatus {
    message (string, optional),
    status (integer, optional): 0 = NotStarted, 1 = Queued, 2 = Starting, 3 = Downloading,
                                4 = Downloaded, 5 = Printing, 6 = Completed, 7 = Paused,
                                8 = PrintingPdf, 100 = Collected, 101 = CodeException,
                                102 = CompletedWait, -2 = Abandoned, -1 = ItemError,
    jobIdentifier (string, optional)
}
JobStatus:
- message (string, optional)
- String that may contain additional information regarding the current status of the job e.g. error description.
- status (integer, optional)
- 
        Integer that indicates the current status of the job identified in the API request jobToken parameter.
 Values: 0 (NotStarted), 1 (Queued), 2 (Starting), 3 (Downloading), 4 (Downloaded), 5 (Printing), 6 (Completed), 7 (Paused), 8 (PrintingPdf), 100 (Collected), 101 (CodeException), 102 (CompletedWait), -2 (Abandoned), -1 (ItemError)
- jobIdentifier (string, optional)
- Returns the job token as confirmation of the request this is answering.
Example usage
Request
<h5>Response <span id="response-status"></span></h5>
<textarea id="response" readonly="readonly" rows="3" class="codefont"></textarea>
<h5>Response headers</h5>
<textarea id="headers" readonly="readonly" rows="3" class="codefont"></textarea>
document.addEventListener("DOMContentLoaded", function() {
    document.getElementById('btn_runcode').addEventListener('click', function() { callServer(); });
});
function callServer() {
    document.getElementById('response-status').textContent = "(waiting)";
    const apiUrl = "/api/v1/printPdf/status/8c72a9871ba64c4ba507b4392c1ce0b9";
    const headers = new Headers({
        "Authorization": "Basic " + btoa("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + ":"),
        "Content-Type": "application/json"
    });
    
    fetch(apiUrl, { method: "GET", headers: headers })
    .then(response => {
        if (!response.ok) {
            throw new Error('Network response was not ok: ' + response.statusText);
        }
        document.getElementById('response-status').textContent = 
            '(status: ' + response.status + ' ' + response.statusText + ')';
        return response.json().then(data => {
            // show JSON response in textarea element
            document.getElementById('response').value = JSON.stringify(data, null, "  ");
              // do something with the status
              var jobCompleted = data.status === 6;
            return response.headers;
        });
    })
    .then(headers => {
        // show response headers in textarea element
        let headersText = "";
        for (let pair of headers.entries()) {
            headersText += `${pair[0]}: ${pair[1]}\n`;
        }
        document.getElementById('headers').value = headersText;
    })
    .catch(error => {
        document.getElementById('response-status').textContent = '(error: ' + error.message + ')';
        document.getElementById('response').value = "Failed to fetch data.";
    });
}