CXM_web_arg_utils.anubis 6.84 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 List(Int)
  get_Int_list
  (
    List(Web_arg) l,
    String        name
  ) =
  if l is
  {
    []      then [],
    [h . t] then
      if h is web_arg(n, v) then
        if n = name then
          //println("matching int name "+name+" value "+v);
          if decimal_scan(v) is
          {
            failure         then get_Int_list(t, name),
            success(value)  then 
              [ value . get_Int_list(t, name)]
          }
        else
          get_Int_list(t, name)
      else
        get_Int_list(t, name)
  }
.

public define Maybe(Float)
  get_Float
  (
    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
        string_to_float(str)
  }.
  
public define Float
  get_Float
  (
    List(Web_arg) lwa,
    String        name,
    Float         default_value
  ) =
  if get_Float(lwa, name) 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  failure
    success(value)  then
      if value +< min | value >+ max then
         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 failure
    success(value)  then
      if value +< min | value >+ max then
        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
  }.