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'
})