Open
Description
It would be nice if developers could add before-execute and after-execute callback functions to their queries in the whitelist. Some use cases:
- Send push notifications after a row is inserted
- Record analytics for a given action
- Record some state in the user's session object
- Modify a query before inserting into database (e.g. password hashing could happen in before-execute instead of separate ajax call).
Technically, before-execute is already possible using the .validate()
method. Are there use cases where we'd want a separate before-execute callback with different semantics? Some thoughts:
- The
.validate()
function must return a truthy value or the query will be rejected. Having non-validation callbacks end inreturn true
might clutter things or lead to bugs. - Should we be able to modify the query before forwarding it to RethinkDB? Would there be issues if rethinkdb-websocket-client got results for a query different from what it thought it executed?
For after-execute, there are two possible variants: one that gets called right after the query is sent to RethinkDB, and another that gets called right after the query response is received from RethinkDB. The former is trivial to implement, and the latter requires parsing RethinkDB responses and tracking query tokens.