$body parameter

You’ve found documentation about extending the Transposit Developer Platform, which is accessible on request. In most cases, you can now set up and use Transposit without needing to extend the Transposit Developer Platform. Go here for the related docs and support.

Many Transposit operations have a parameter named $body to represent the request body of the operation. The $body can be written as plain JSON in a JavaScript operation or a JSON-like object constructed through a SELECT statement in SQL.

For example, the following JS and SQL operations are equivalent:

function run(params) {
  return api.run("spotify.create_playlist", 
  { 
    user_id: "12345", 
    $body: {public: true, name: "My New Playlist"}
  })
}
SELECT * FROM spotify.create_playlist
  WHERE user_id='12345'
  AND $body=(SELECT {
    'public' : true,
    'name' : 'My New Playlist'
  })

Note: the single quotes are optional for public and name in the SQL call, but string values, i.e My New Playlist should be single-quoted.

Ability to extract from $body

The $body parameter supports nested object assignment, similar to a JSON object.

For example: the above SQL statement can also be written as

SELECT * FROM spotify.create_playlist
  WHERE user_id='12345'
  AND $body.public = true
  AND $body.name = 'My New Playlist'

Duplicate variable assignments are not allowed.

Extracted $body parameters can also be objects. For example:

SELECT * FROM stripe.create_charge
  WHERE $body.shipping = (SELECT {
    'carrier': 'USPS',
    'name': 'Transposit',
    'address': {
      'city': 'San Francisco',
      'state': 'CA',
      'postal_code': '94108',
      'line1': '49 Geary St'
    }
  })
  AND $body.shipping.address.country = 'USA'
  AND $body= (SELECT {
      'description' : 'Plants for the office',
      'source': 'tok_visa',
      'amount': 200,
      'currency': 'USD'
  })