CXM_web_arg_utils.anubis 6.11 KB
/*
 * Created by PyramIDE.
 * User: Totoro
 * Date: 07/02/2014
 * Time: 21:43
 */
 
transmit tools/basis.anubis
transmit calexium_lib/web/CXM_common.anubis
transmit calexium_lib/database/db_types.anubis

public define DB_id
  get_DB_id
  (
    List(Web_arg) lwa,
    String        arg_name
  ) =
  if web_arg_value(lwa, arg_name) is
  {
    not_found     then none,
    found(value)  then 
      //Check if value is none which means no id provided
      if value="none" then 
        none 
      else 
        //Now try to convert the string into Int to get the id
        if decimal_scan(value) is 
        {
          failure         then none, 
          success(_value) then db_id(_value)
        }
  }.
public define Maybe(DB_date)
  get_DB_date
  (
    List(Web_arg) lwa,
    String        arg_name
  ) =
  if web_arg_value(lwa, arg_name) is
  {
    not_found     then failure,
    found(value)  then success(db_date(value))
  }.

public define Maybe(DB_time)
  get_DB_time
  (
    List(Web_arg) lwa,
    String        arg_name
  ) =
  if web_arg_value(lwa, arg_name) is
  {
    not_found     then failure,
    found(value)  then success(db_time(value))
  }.

public define Maybe(DB_datetime)
  get_DB_datetime
  (
    List(Web_arg) lwa,
    String        arg_name
  ) =
  if web_arg_value(lwa, arg_name) is
  {
    not_found     then failure,
    found(value)  then success(db_datetime(value))
  }.
  
public define Maybe(String)
  get_String
  (
    List(Web_arg) lwa,
    String        arg_name
  ) =
  if web_arg_value(lwa, arg_name) is
  {
    not_found     then failure,
    found(value)  then success(value)
  }.
  
public define String
  get_String
  (
    List(Web_arg) lwa,
    String        arg_name,
    String        default_value
  ) =
  if get_String(lwa, arg_name) is
  {
    failure         then default_value
    success(value)  then value
  }.
  
public define Bool
  get_Bool
  (
    List(Web_arg) lwa,
    String        arg_name
  ) =
  if web_arg_value(lwa, arg_name) is
  {
    not_found then false,
    found(_)  then true
  }.

public define Bool
  get_Bool
  (
    List(Web_arg) lwa,
    String        arg_name,
    Bool          default_value
  ) =
  if web_arg_value(lwa, arg_name) is
  {
    not_found then default_value,
    found(_)  then true
  }.
  
 public define Maybe(Bool)
  get_Bool
  (
    List(Web_arg) lwa,
    String        arg_name
  ) =
  if web_arg_value(lwa, arg_name) is
  {
    not_found then success(false),
    found(_)  then success(true)
  }.
  
public define Maybe(Int)
  get_Int
  (
    List(Web_arg) lwa,
    String        name
  ) =
  if web_arg_value(lwa, name) is
  {
    not_found   then /*logDebug(debug_log, "Can't find argument '" + name + "'");*/ failure
    found(str)  then
      if str = "" then 
        failure
      else
        decimal_scan(str)
  }.
  
public define Int
  get_Int
  (
    List(Web_arg) lwa,
    String        name,
    Int           default_value
  ) =
  if get_Int(lwa, name) is
  {
    failure         then default_value,
    success(value)  then value
  }.
  
public define Maybe(Int)
  get_Int
  (
    List(Web_arg) lwa,
    String        name,
    Int           min,
    Int           max,
  ) =
  if get_Int(lwa, name) is
  {
    failure         then /*logDebug(debug_log, "Can't convert argument '" + name + "' to integer.");*/ failure
    success(value)  then
      if (value < min) | (value > max) then
        /*logDebug(debug_log, "The entered value (" + val + ")is out of boundaries [" + min + "," + max + "].");*/ failure
      else
        success(value)
  }.

public define Int
  get_Int
  (
    List(Web_arg) lwa,
    String        name,
    Int           min,
    Int           max,
    Int           default_value
  ) =
  if get_Int(lwa, name, min, max) is
  {
    failure         then  default_value,
    success(value)  then value
  }.
  
public define Maybe(Word32)
  get_Word32
  (
    List(Web_arg) lwa,
    String        name
  ) =
  if get_Int(lwa, name) is
  {
    failure           then failure,
    success(int_val)  then success(truncate_to_Word32(int_val))
  }.
  
public define Word32
  get_Word32
  (
    List(Web_arg) lwa,
    String        name,
    Word32        default_value
  ) =
  if get_Word32(lwa, name) is
  {
    failure         then /*logDebug(debug_log, "Can't convert argument '" + name + "' to integer.");*/ default_value,
    success(value)  then value
  }.
  
public define Maybe(Word32)
  get_Word32
  (
    List(Web_arg) lwa,
    String        name,
    Word32        min,
    Word32        max,
  ) =
  if get_Word32(lwa, name) is
  {
    failure         then /*logDebug(debug_log, "Can't convert argument '" + name + "' to integer.");*/ failure
    success(value)  then
      if value +< min | value >+ max then
        /*logDebug(debug_log, "The entered value (" + val + ")is out of boundaries [" + min + "," + max + "].");*/ failure
      else
        success(value)
  }.

public define Word32
  get_Word32
  (
    List(Web_arg) lwa,
    String        name,
    Word32        min,
    Word32        max,
    Word32        default_value
  ) =
  if get_Word32(lwa, name, min, max) is 
  { 
    failure         then default_value,
    success(value)  then value
  }.
  
public define Maybe(Word8)
  get_Word8
  (
    List(Web_arg) lwa,
    String        name
  ) =
  if get_Int(lwa, name) is
  {
    failure           then failure,
    success(int_val)  then success(truncate_to_Word8(int_val))
  }.
  
public define Maybe(Word8)
  get_Word8
  (
    List(Web_arg) lwa,
    String        name,
    Word8         min,
    Word8         max,
  ) =
  if get_Word8(lwa, name) is
  {
    failure         then /*logDebug(debug_log, "Can't convert argument '" + name + "' to integer.");*/ failure
    success(value)  then
      if value +< min | value >+ max then
        /*logDebug(debug_log, "The entered value (" + val + ")is out of boundaries [" + min + "," + max + "].");*/ failure
      else
        success(value)
  }.  

public define Word8
  get_Word8
  (
    List(Web_arg) lwa,
    String        name,
    Word8         min,
    Word8         max,
    Word8         default_value
  ) =
  if get_Word8(lwa, name, min, max) is
  { 
    failure         then default_value,
    success(value)  then value
  }.