Response Query

Response Query

The res object that is available inside the post-response variables and scripts. contexts can be queried for data by invoking it like below.

Think of it as lodash.get() on steroids

res('order.total')

Examples

const data = {
  customer: {
    address: {
      city: "bangalore"
    },
    orders: [
      {
        id: "order-1",
        items: [
          { id: 1, amount: 10 },
          { id: 2, amount: 20 }
        ]
      },
      {
        id: "order-2",
        items: [
          { id: 3, amount: 30 },
          { id: 4, amount: 40 }
        ]
      }
    ]
  },
};
Query Output
res(“customer.address.city”) bangalore
res(“customer.orders.items.amount”) [10, 20, 30, 40]
res(“customer.orders.items.amount[0]”) 10
res("..items.amount") [10, 20, 30, 40]
res("..amount") [10, 20, 30, 40]
res("..items.amount[0]") 10
res("..items[0].amount") 10
res("..items[5].amount") undefined
res("..id") [“order-1”, 1, 2, “order-2”, 3, 4]
res(“customer.orders.foo”) undefined
res("..customer.foo") undefined
res("..address") [{ city: “bangalore” }]
res("..address[0]") { city: “bangalore” }

API

Standard dot notation

Example:

res('customer.orders.items.amount')

Deep navigation .. double dots

Example:

res('..items.amount')

Array indexing

Example:

res('..items[0].amount')

Array filtering [?] with corresponding filter function

Example:

res('..items[?].amount', i => i.amount > 20)

Array mapping [?] with corresponding mapper function

Example:

res('..items..amount[?]', amt => amt + 10)