hk_utils.anubis 1.82 KB
/*
 * Created by PyramIDE.
 * User: フランスのトトロ aka (David RENÉ) 
 * Date: 19/04/2020
 * Time: 18:35
 * © David RENÉ
 */

read xlib/web/web_arg_utils.anubis

read hayamiki_lib/view/view_table_manager_types.anubis
read hayamiki_lib/types/hayamiki.anubis

//TODO replace that function which not call the triggers
public define Maybe(Int) 
  update_row
  (
    SQLite3DataBase db,
    VTM             _vtm,
    List(Web_arg)   _lwa
  )=
     
  with table_name = get_String(_lwa, "table_name", ""),  // table name
  
  if get_hk_controller(_vtm.hk_controllers, table_name) is
  {
    failure               then println("update_row can't get hk_controller for "+table_name);failure,
    success(controller)   then 
      //forget(map((HK_Trigger trigger) |-> println("call trigger before update "+trigger.trigger_name+" ON table "+table_name); trigger.trigger_call_back(db, _session), *controller.triggers.before_update));

      if controller.write_from_fields(db, _lwa) is
      {
        failure               then  failure,
        success(inserted_idx) then
          //replace_Int(_session.fields, "hk_last_insert_idx", inserted_idx);
          //forget(map((HK_Trigger trigger) |-> println("[update row] call trigger after update "+trigger.trigger_name+" ON table "+table_name); trigger.trigger_call_back(db, _session), *controller.triggers.after_update));
          success(inserted_idx)
      }
  }
.


public define String
  row_show_string
  (
    SQLite3DataBase db,
    VTM             _vtm,
    String          table_name,
    DB_id           id
  )=
  if get_hk_controller(_vtm.hk_controllers, table_name) is
  {
    failure               then println("show_string can't get hk_controller for "+table_name);"ERROR: can't get hk_controller for "+table_name,
    success(controller)   then controller.get_show_string(db, id)
  }
.