/* * Created by PyramIDE. * User: フランスのトトロ aka (David RENÉ) * Date: 18/06/2017 * Time: 23:12 * © David RENÉ */ transmit calexium_lib/web/CXM_making_a_web_site.anubis public type HK_Trigger_Result: ok, error, abort . public type HK_Trigger_Type: before_create, after_create, before_update, after_update, before_delete, after_delete . public type HK_Trigger: hk_trigger( String trigger_name, HK_Trigger_Type trigger_type, ((SQLite3DataBase db, WEB_Session session ) -> HK_Trigger_Result) trigger_call_back) . public type HK_Trigger_Set: hk_trigger_set( Var(List(HK_Trigger)) before_create, //must be called before create the requested Var(List(HK_Trigger)) after_create, //must be called after create the requested Var(List(HK_Trigger)) before_update, //must be called before update the requested Var(List(HK_Trigger)) after_update, //must be called after update the requested Var(List(HK_Trigger)) before_delete, //must be called before delete the requested Var(List(HK_Trigger)) after_delete //must be called after delete the requested ) . public define Maybe(HK_Trigger) get_trigger ( List(HK_Trigger) triggers, String _trigger_name ) = if triggers is { [] then failure, [h . t] then if h.trigger_name = _trigger_name then success(h) else get_trigger(t, _trigger_name) } . public define One add_trigger ( Var(List(HK_Trigger)) triggers, HK_Trigger added_trigger )= println(">>> TRIGGER "+added_trigger.trigger_name+" added"); triggers <- [added_trigger . *triggers] . define List(HK_Trigger) _remove_trigger ( List(HK_Trigger) triggers, String _trigger_name )= if triggers is { [] then [], [h . t] then if h.trigger_name = _trigger_name then _remove_trigger(t, _trigger_name) else [h . _remove_trigger(t, _trigger_name)] } . public define One remove_trigger ( Var(List(HK_Trigger)) triggers, String trigger_name )= triggers <- _remove_trigger(*triggers, trigger_name) .