From c2211587387ba076755b75a87d7088f598f9d294 Mon Sep 17 00:00:00 2001 From: totoro Date: Sun, 2 Mar 2014 00:21:51 +0100 Subject: [PATCH] create helper to get or extract web argument value in some format like String, Bool, Int, etc. --- web/CXM_web_arg_utils.anubis | 196 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 196 insertions(+), 0 deletions(-) create mode 100644 web/CXM_web_arg_utils.anubis diff --git a/web/CXM_web_arg_utils.anubis b/web/CXM_web_arg_utils.anubis new file mode 100644 index 0000000..bd0bec8 --- /dev/null +++ b/web/CXM_web_arg_utils.anubis @@ -0,0 +1,196 @@ +/* + * Created by PyramIDE. + * User: Totoro + * Date: 07/02/2014 + * Time: 21:43 + * + */ +read tools/basis.anubis +read calexium_lib/web/CXM_common.anubis + +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 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) + }. -- libgit2 0.21.4