Dispatch bucket
Placing related dispatches into dispatch bucket. If you want to place related dispatches into a bucket that can be easily retrieved later, you can use dispatch buckets.
Examples
Placing related dispatches into the applicants bucket.
Placing dispatches into a dispatch applicants bucket. In this example, ownerId is the dispatch that the applicants are applying to. The handle of the bucket is applicants as we can have multiple handles, e.g. approved, declined, etc.
-- Lua Code
-- parent dispatch (aka owner)
-- bucket name: applicant
mock("dispatchId", "65dd39c8-4e49-4aa4-be20-6f72a5d9375a")
local dispatchId = param("dispatchId")
local bucketName = "applicants"
local dispatch = first(core.QueryDispatch("id:"..dispatchId))
if dispatch ~= nil and dispatch.data.campaignId ~= nil then
log.pairs(dispatch.data)
local campaignId = dispatch.data.campaignId
local campaign = first(core.QueryDispatch("id:"..campaignId))
if campaign ~= nil then
local applicants = (campaign.data.applicants or 0) + 1
-- update applicants count
local data = campaign.data
data.applicants = applicants
core.UpdateDispatchData({
dispatchId=campaignId,
trackerId=campaign.trackerId,
data=data
})
-- placing the applicants into the bucket
core.AddDispatchBucketDispatch({
dispatchId=dispatchId,
ownerId=campaignId,
handle=bucketName
})
-- add key to the applicant dispatch so that we can search
core.ApplyDispatchKeys(
dispatchId,
{
{
name="campaign",
value=campaignId
}
}
)
end
end