Registering a Hook
A hook can be registered on a datastore or on a specific collection. A hook however at all times will operate on a collection. If only a datastore is specified for registering a hook, then the operation is equivalent to individually applying hooks on all collections within the datastore.
blobcity>hook add {ds/collection} {insert/update/delete} {event/
transaction} {url}
{
"username": "root",
"password": "root",
"q": "hook-add",
"ds": "ds",
"c": "c",
"p": {
"type": "event/transaction",
"operation": "insert/update/delete",
"url": "https://<url>"
}
}
{ds/collection}
corresponds to an existent datastore or an existent collection within a datastore. If only a datastore is specified, the hook will be registered on all current and future collections present within the datastore. If a collection is specified, the hook is registered for only the specified collection.
{insert/update/delete}
corresponds to the operation for which the hook is meant. insert corresponds to a record insert operation, update corresponds to a record update
operation and delete corresponds to a record delete
operation. Only one of these values can be specified in the command.
{event/transaction}
corresponds to the type of hook. An event
hook is a simple observer hook. An event hook is called in an asynchronous manner after the transaction is successfully committed. On the other hand, transaction
hooks are called in a synchronous manner before the final commit phase of the on-going transaction. A transaction hook must respond back with a commit or rollback outcome, which will result in the on-going transaction to being correspondingly committed or rolled-back.
{url}
corresponds to the URL on which the hook is hosted. The database will invoke a POST request on the URL passing JSON data corresponding to the hook.
A sample command to register an insert event hook on a Users collection within a Organisation datastore would look as shown below:
Updated over 5 years ago