From 1efb7093672d324808d8ec501eb9b7b6779ba081 Mon Sep 17 00:00:00 2001 From: Qinsi ZHU Date: Sun, 19 May 2019 22:54:09 +0800 Subject: [PATCH] feat: query callbacks in model --- src/onyx-sql/model.cr | 6 ++++++ src/onyx-sql/model/instance_query_shortcuts.cr | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/src/onyx-sql/model.cr b/src/onyx-sql/model.cr index 6f7ff8d..82e3caa 100644 --- a/src/onyx-sql/model.cr +++ b/src/onyx-sql/model.cr @@ -252,4 +252,10 @@ module Onyx::SQL::Model @{{pk_rivar}} {% end %} end + + def before_insert + end + + def before_update + end end diff --git a/src/onyx-sql/model/instance_query_shortcuts.cr b/src/onyx-sql/model/instance_query_shortcuts.cr index 90b8bda..cb0513d 100644 --- a/src/onyx-sql/model/instance_query_shortcuts.cr +++ b/src/onyx-sql/model/instance_query_shortcuts.cr @@ -13,6 +13,8 @@ module Onyx::SQL::Model # user.insert == Query(User).new.insert(id: 42, name: "John") # ``` def insert : Query + before_insert + query = Query(self).new {% for ivar in @type.instance_vars %} @@ -49,6 +51,8 @@ module Onyx::SQL::Model # user.update(changeset) == Query(User).new.update.set(name: "Jake").where(id: 42) # ``` def update(changeset : Changeset(self, U)) : Query forall U + before_update + query = Query(self).new.update {% begin %}