Files
api-collections/bruno/collections/IRIS GW (Gateway) REST API (v1)/[Runner] Get All Contracts/[Runner] Get All Contracts.yml
T

81 lines
2.4 KiB
YAML

info:
name: "[Runner] Get All Contracts"
type: http
seq: 1
http:
method: GET
url: "{{IrisApiUrl}}/contracts;full?page={{runnerCurrentPage}}&sort=pid&dir=asc"
params:
- name: page
value: "{{runnerCurrentPage}}"
type: query
- name: sort
value: pid
type: query
description: |-
The usable fields for sorting are:
- id
- pid
- year
- name
- startDate
- lastModified
- wfItemType.identifier (only for item with validation flow)
- wfItemType.description (only for item with validation flow)
The actual usable sorting filters for a specific resource type are specified in the REST Service Details
- name: dir
value: asc
type: query
auth: inherit
runtime:
scripts:
- type: after-response
code: |-
test("Status code is 200", function () {
expect(res.getStatus()).to.equal(200);
// Get pagination headers
var currentPage = parseInt(res.getHeader("Page"));
var totalPages = parseInt(res.getHeader("Page-Count"));
// If first loop, reset results array
if (currentPage == 1)
{
bru.setVar("runnerResultsArray", JSON.stringify([]));
}
// Update result array
let resultsArray = JSON.parse(bru.getVar("runnerResultsArray"));
var results = res.getBody();
resultsArray = resultsArray.concat(results);
bru.setVar("runnerResultsArray", JSON.stringify(resultsArray));
// Loop decision
if (currentPage == totalPages)
{
// Loop has finished, reset variables and stop
bru.setVar("runnerCurrentPage", 1);
bru.deleteVar("runnerTotalPages");
// //pm.collectionVariables.unset("runnerResultsArray"); // Do not unset, so you can find results in the env var!
}
else
{
// Still having pages, update pagination values
bru.setVar("runnerCurrentPage", ++currentPage);
bru.setVar("runnerTotalPages", totalPages);
// Set next request and wait for 1 second before sending the next request. This is to avoid hitting the rate limit.
bru.runner.setNextRequest(req.getName());
setTimeout(function(){}, [1000]);
}
});
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5