gopkg.in/rethinkdb/rethinkdb-go.v6@v6.2.2/query_write_hooks.go (about) 1 package rethinkdb 2 3 import ( 4 p "gopkg.in/rethinkdb/rethinkdb-go.v6/ql2" 5 ) 6 7 // Rethinkdb proposal: https://github.com/rethinkdb/rethinkdb/issues/5813 8 9 // WriteHookFunc called by rethinkdb when document is changed. 10 // id, oldVal or newVal can be null (test with Branch). 11 type WriteHookFunc func(id Term, oldVal Term, newVal Term) Term 12 13 // SetWriteHook sets function that will be called each time document in a table is being 14 // inserted, updated, replaced or deleted. 15 func (t Term) SetWriteHook(hookFunc WriteHookFunc) Term { 16 var f interface{} = nil 17 if hookFunc != nil { 18 f = funcWrap(hookFunc) 19 } 20 return constructMethodTerm(t, "SetWriteHook", p.Term_SET_WRITE_HOOK, []interface{}{f}, map[string]interface{}{}) 21 } 22 23 // WriteHookInfo is a return type of GetWriteHook func. 24 type WriteHookInfo struct { 25 Function []byte `gorethink:"function,omitempty"` 26 Query string `gorethink:"query,omitempty"` 27 } 28 29 // GetWriteHook reads write hook associated with table. 30 // Use WriteHookInfo and ReadOne to get results. 31 func (t Term) GetWriteHook() Term { 32 return constructMethodTerm(t, "GetWriteHook", p.Term_GET_WRITE_HOOK, []interface{}{}, map[string]interface{}{}) 33 }