/* * Created by PyramIDE. * User: フランスのトトロ aka (David RENÉ) * Date: 19/03/2016 * Time: 19:48 * © Calexium */ read tools/basis.anubis transmit hayamiki_lib/types/hayamiki.anubis //transmit hayamiki_lib/controller/hk_delete.anubis transmit hayamiki_lib/controller/hk_trigger.anubis transmit kayamiki_lib/controller/hk_rows_import.anubis transmit calexium_lib/web/CXM_common.anubis transmit calexium_lib/web/CXM_making_a_web_site.anubis transmit calexium_lib/database/db_types.anubis //CRUD basis function + //Create //Read //Update //Delete public type HK_Table_controller: hk_table_controller( String table_name, //Create (SQLite3DataBase db, List(Web_arg) lwa) -> Maybe(Int) write_from_type, (SQLite3DataBase db, List(Web_arg) lwa) -> Maybe(Int) write_from_fields, //Read (SQLite3DataBase db, String clause) -> Int get_count, //(SQLite3DataBase db, String clause) -> List($T) get_all_by_clause_to_list_type, (SQLite3DataBase db, List(String) columns, Bool resolve_fk, DB_id) -> JsonValue get_one_json, (SQLite3DataBase db, List(String) columns, Bool resolve_fk, HK_Referer referer, String clause, String order_by) -> JsonValue get_rows_json, //Update //Delete (SQLite3DataBase db, List(Int) l_int) -> Maybe(One) delete, //view interface //selector (SQLite3DataBase db, HK_Referer referer, String filter) -> List((List(CoreAttrs), WebArgValue, String)) get_selector, //Triggers of that table, can be dynamically updated HK_Trigger_Set triggers ) . public define Maybe(HK_Table_controller) get_hk_controller ( List(HK_Table_controller) controllers, String _table_name )= if controllers is { [] then failure, [h . t ] then if h.table_name = _table_name then success(h) else get_hk_controller(t, _table_name) } . public define One add_trigger_to_table ( List(HK_Table_controller) controllers, String _table_name, HK_Trigger trigger_to_add )= if get_hk_controller(controllers, _table_name) is { failure then unique success(ctrl) then since trigger_to_add is hk_trigger(name, t_type, call_back), if t_type is { before_create then println(">>> ADD TRIGGER 'before_create' to table "+_table_name);add_trigger(ctrl.triggers.before_create, trigger_to_add), after_create then println(">>> ADD TRIGGER 'after_create' to table "+_table_name); add_trigger(ctrl.triggers.after_create, trigger_to_add), before_update then println(">>> ADD TRIGGER 'before_update' to table "+_table_name);add_trigger(ctrl.triggers.before_update, trigger_to_add), after_update then println(">>> ADD TRIGGER 'after_update' to table "+_table_name); add_trigger(ctrl.triggers.after_update, trigger_to_add), before_delete then println(">>> ADD TRIGGER 'before_delete' to table "+_table_name);add_trigger(ctrl.triggers.before_delete, trigger_to_add), after_delete then println(">>> ADD TRIGGER 'after_delete' to table "+_table_name); add_trigger(ctrl.triggers.after_delete, trigger_to_add) } } .