/* * Created by PyramIDE. * User: フランスのトトロ aka (David RENÉ) * Date: 17/02/2017 * Time: 17:18 * © Calexium */ read system/convert.anubis read system/muscle.anubis read calexium_lib/database/db_types.anubis read CXM_common.anubis read CXM_web_dump.anubis public type WEB_Session_Field_Datum: string(String), //fully implented bool(Bool), //fully implented int(Int), //fully implemented db_id(DB_id), message(Message), //fully implemented byte_array(ByteArray), float(Float), word128(Word128), word64(Word64), word32(Word32), word16(Word16), word8(Word8), word4(Word4) //WEB_Request . public type WEB_Session_Field_Type: string_t, bool_t, int_t, db_id_t, message_t, byte_array_t, float_t, word128_t, word64_t, word32_t, word16_t, word8_t, word4_t . public type WEB_Session_Field: session_field( String field_name, WEB_Session_Field_Type field_type, Var(WEB_Session_Field_Datum) field_datum //Var because it can be replaced ). public type WEB_Session_Field_No_Var: session_field( String field_name, WEB_Session_Field_Type field_type, WEB_Session_Field_Datum field_datum //Var because it can be replaced ). public type WEB_Request: web_request( HTTP_Info http_info, Var(List(Web_arg)) lwa, Bool is_https, ) . public type WEB_Request_No_Var: web_request( HTTP_Info http_info, List(Web_arg) lwa, Bool is_https, ) . public type WEB_Session: web_session( String language, Var(List(WEB_Session_Field)) fields, WEB_Request web_request, WEB_Request previous_web_request ). public type WEB_Session_No_Var: web_session( String language, List(WEB_Session_Field_No_Var) fields, WEB_Request_No_Var web_request, WEB_Request_No_Var previous_web_request ). public define Var(List(WEB_Session_Field)) empty_fields_list = var([]). public define WEB_Session_Field session_field ( String _field_name, String _string )= session_field(_field_name, string_t, var(string(_string))) . *----------------------------------------------------------------* define Var(List(WEB_Session_Field)) to_WEB_Session_Field ( List(WEB_Session_Field_No_Var) fields )= var(map((WEB_Session_Field_No_Var field) |-> session_field(field.field_name, field.field_type, var(field.field_datum)), fields)) . define List(WEB_Session_Field_No_Var) to_WEB_Session_Field_No_Var ( List(WEB_Session_Field) fields )= map((WEB_Session_Field field) |-> session_field(field.field_name, field.field_type, *field.field_datum), fields) . public define WEB_Session to_WEB_Session ( WEB_Session_No_Var _session )= since _session is web_session(language, fields, c_web_request, p_web_request), web_session(language, to_WEB_Session_Field(fields), web_request(c_web_request.http_info, var(c_web_request.lwa), c_web_request.is_https), web_request(p_web_request.http_info, var(p_web_request.lwa), p_web_request.is_https) ) . public define WEB_Session_No_Var to_WEB_Session_No_Var ( WEB_Session _session )= since _session is web_session(language, fields, c_web_request, p_web_request), web_session(language, to_WEB_Session_Field_No_Var(*fields), web_request(c_web_request.http_info, *c_web_request.lwa, c_web_request.is_https), web_request(p_web_request.http_info, *p_web_request.lwa, p_web_request.is_https) ) . public define Maybe(WEB_Session_Field_Datum) get_field ( List(WEB_Session_Field) fields, WEB_Session_Field_Type _field_type, String _field_name ) = if fields is { [] then failure, [h . t] then if h.field_name = _field_name & h.field_type = _field_type then success(*h.field_datum) else get_field(t, _field_type, _field_name) } . /******** ANY functions ***************/ define List(WEB_Session_Field) _remove_any ( List(WEB_Session_Field) fields, WEB_Session_Field_Type _field_type, String _field_name )= if fields is { [] then [], [h . t] then if h.field_name = _field_name & h.field_type = _field_type then _remove_any(t, _field_type, _field_name) else [ h. _remove_any(t, _field_type, _field_name) ] } . define One remove_any ( Var(List(WEB_Session_Field)) fields, WEB_Session_Field_Type _field_type, String _field_name )= fields <- _remove_any(*fields, _field_type, _field_name) . define One replace_any ( List(WEB_Session_Field) fields, WEB_Session_Field_Type _field_type, String _field_name, WEB_Session_Field_Datum _field_value, Var(List(WEB_Session_Field)) fields_org, )= if fields is { [] then fields_org <- [session_field(_field_name, _field_type, var(_field_value)) . *fields_org], [h . t] then //println("h.field_name = "+h.field_name+" _field_name = "+_field_name); if h.field_name = _field_name & h.field_type = _field_type then //println("replace field_name found"); h.field_datum <- _field_value else replace_any(t, _field_type, _field_name, _field_value, fields_org) } . define One replace_any ( Var(List(WEB_Session_Field)) fields, WEB_Session_Field_Type _field_type, String _field_name, WEB_Session_Field_Datum _field_value )= replace_any(*fields, _field_type, _field_name, _field_value, fields) . /*************** String *****************/ Maybe(String) get_String(fields, _field_name) String get_String(fields, _field_name, default_value) public define Maybe(String) get_String ( Var(List(WEB_Session_Field)) fields, String _field_name ) = if get_field(*fields, string_t, _field_name) is { failure then failure, success(datum) then if datum is string(value) then success(value) else failure } . public define String get_String ( Var(List(WEB_Session_Field)) fields, String _field_name, String default_value ) = if get_String(fields, _field_name) is { failure then default_value success(value) then value }. public define One put_String ( Var(List(WEB_Session_Field)) fields, String _field_name, String _field_value )= fields <- [session_field(_field_name, string_t, var(string(_field_value))) . *fields] . public define One replace_String ( Var(List(WEB_Session_Field)) fields, String _field_name, String _field_value )= replace_any(fields, string_t, _field_name, string(_field_value)) . public define One remove_String ( Var(List(WEB_Session_Field)) fields, String _field_name )= remove_any(fields, string_t, _field_name) . /*************** Bool *****************/ Maybe(Bool) get_Bool(fields, _field_name) Bool get_Bool(fields, _field_name, default_value) public define Maybe(Bool) get_Bool ( Var(List(WEB_Session_Field)) fields, String _field_name ) = if get_field(*fields, bool_t, _field_name) is { failure then failure, success(datum) then if datum is bool(value) then success(value) else failure } . public define Bool get_Bool ( Var(List(WEB_Session_Field)) fields, String _field_name, Bool default_value ) = if get_Bool(fields, _field_name) is { failure then default_value success(value) then value }. public define One put_Bool ( Var(List(WEB_Session_Field)) fields, String _field_name, Bool _field_value )= fields <- [session_field(_field_name, bool_t, var(bool(_field_value))) . *fields] . public define One replace_Bool ( Var(List(WEB_Session_Field)) fields, String _field_name, Bool _field_value )= replace_any(fields, bool_t, _field_name, bool(_field_value)) . public define One remove_Bool ( Var(List(WEB_Session_Field)) fields, String _field_name )= remove_any(fields, bool_t, _field_name) . /*************** Int *****************/ Maybe(String) get_Int(fields, _field_name) String get_Int(fields, _field_name, default_value) public define Maybe(Int) get_Int ( Var(List(WEB_Session_Field)) fields, String _field_name, ) = if get_field(*fields, int_t, _field_name) is { failure then failure, success(datum) then if datum is int(value) then success(value) else failure } . public define Int get_Int ( Var(List(WEB_Session_Field)) fields, String _field_name, Int default_value ) = if get_Int(fields, _field_name) is { failure then default_value success(value) then value }. public define One put_Int ( Var(List(WEB_Session_Field)) fields, String _field_name, Int _field_value )= fields <- [session_field(_field_name, int_t, var(int(_field_value))) . *fields] . public define One replace_Int ( Var(List(WEB_Session_Field)) fields, String _field_name, Int _field_value )= replace_any(fields, int_t, _field_name, int(_field_value)) . public define One remove_Int ( Var(List(WEB_Session_Field)) fields, String _field_name )= remove_any(fields, int_t, _field_name) . /*************** DB_id *****************/ Maybe(String) get_DB_id(fields, _field_name) String get_DB_id(fields, _field_name, default_value) public define Maybe(DB_id) get_DB_id ( Var(List(WEB_Session_Field)) fields, String _field_name, ) = if get_field(*fields, db_id_t, _field_name) is { failure then failure, success(datum) then if datum is db_id(value) then success(value) else failure } . public define DB_id get_DB_id ( Var(List(WEB_Session_Field)) fields, String _field_name, DB_id default_value ) = if get_DB_id(fields, _field_name) is { failure then default_value success(value) then value }. public define One put_DB_id ( Var(List(WEB_Session_Field)) fields, String _field_name, DB_id _field_value )= fields <- [session_field(_field_name, int_t, var(db_id(_field_value))) . *fields] . public define One replace_DB_id ( Var(List(WEB_Session_Field)) fields, String _field_name, DB_id _field_value )= replace_any(fields, db_id_t, _field_name, db_id(_field_value)) . public define One remove_DB_id ( Var(List(WEB_Session_Field)) fields, String _field_name )= remove_any(fields, db_id_t, _field_name) . /*************** Message *****************/ Maybe(String) get_Message(fields, _field_name) String get_Message(fiels, _field_name, default_value) public define Maybe(Message) get_Message ( Var(List(WEB_Session_Field)) fields, String _field_name ) = if get_field(*fields, message_t, _field_name) is { failure then failure, success(datum) then if datum is message(value) then success(value) else failure } . public define Message get_Message ( Var(List(WEB_Session_Field)) fields, String _field_name, Message default_value ) = if get_Message(fields, _field_name) is { failure then default_value success(value) then value }. public define One put_Message ( Var(List(WEB_Session_Field)) fields, String _field_name, Message _field_value )= fields <- [session_field(_field_name, message_t, var(message(_field_value))) . *fields] . public define One replace_Message ( Var(List(WEB_Session_Field)) fields, String _field_name, Message _field_value )= replace_any(fields, message_t, _field_name, message(_field_value)) . public define One remove_Message ( Var(List(WEB_Session_Field)) fields, String _field_name )= remove_any(fields, message_t, _field_name) . /*************** ByteArray *****************/ Maybe(ByteArray) get_ByteArray(fields, _field_name) ByteArray get_ByteArray(fiels, _field_name, default_value) public define Maybe(ByteArray) get_ByteArray ( Var(List(WEB_Session_Field)) fields, String _field_name, ) = if get_field(*fields, byte_array_t, _field_name) is { failure then failure, success(datum) then if datum is byte_array(value) then success(value) else failure } . public define ByteArray get_ByteArray ( Var(List(WEB_Session_Field)) fields, String _field_name, ByteArray default_value ) = if get_ByteArray(fields, _field_name) is { failure then default_value success(value) then value }. public define One put_ByteArray ( Var(List(WEB_Session_Field)) fields, String _field_name, ByteArray _field_value )= fields <- [session_field(_field_name, byte_array_t, var(byte_array(_field_value))) . *fields] . public define One replace_ByteArray ( Var(List(WEB_Session_Field)) fields, String _field_name, ByteArray _field_value )= replace_any(fields, byte_array_t, _field_name, byte_array(_field_value)) . public define One remove_ByteArray ( Var(List(WEB_Session_Field)) fields, String _field_name )= remove_any(fields, byte_array_t, _field_name) . /*************** Float *****************/ Maybe(Float) get_Float(fields, _field_name) Float get_Float(fiels, _field_name, default_value) public define Maybe(Float) get_Float ( Var(List(WEB_Session_Field)) fields, String _field_name, ) = if get_field(*fields, float_t, _field_name) is { failure then failure, success(datum) then if datum is float(value) then success(value) else failure } . public define Float get_Float ( Var(List(WEB_Session_Field)) fields, String _field_name, Float default_value ) = if get_Float(fields, _field_name) is { failure then default_value success(value) then value }. public define One put_Float ( Var(List(WEB_Session_Field)) fields, String _field_name, Float _field_value )= fields <- [session_field(_field_name, float_t, var(float(_field_value))) . *fields] . public define One replace_Float ( Var(List(WEB_Session_Field)) fields, String _field_name, Float _field_value )= replace_any(fields, float_t, _field_name, float(_field_value)) . public define One remove_Float ( Var(List(WEB_Session_Field)) fields, String _field_name )= remove_any(fields, float_t, _field_name) . /*************** Word128 *****************/ Maybe(Word128) get_Word128t(fields, _field_name) Word128 get_Word128(fields, _field_name, default_value) public define Maybe(Word128) get_Word128 ( Var(List(WEB_Session_Field)) fields, String _field_name, ) = if get_field(*fields, word128_t, _field_name) is { failure then failure, success(datum) then if datum is word128(value) then success(value) else failure } . public define Word128 get_Word128 ( Var(List(WEB_Session_Field)) fields, String _field_name, Word128 default_value ) = if get_Word128(fields, _field_name) is { failure then default_value success(value) then value }. public define One put_Word128 ( Var(List(WEB_Session_Field)) fields, String _field_name, Word128 _field_value )= fields <- [session_field(_field_name, word128_t, var(word128(_field_value))) . *fields] . public define One replace_Word128 ( Var(List(WEB_Session_Field)) fields, String _field_name, Word128 _field_value )= replace_any(fields, word128_t, _field_name, word128(_field_value)) . public define One remove_Word128 ( Var(List(WEB_Session_Field)) fields, String _field_name )= remove_any(fields, word128_t, _field_name) . /*************** Word64 *****************/ Maybe(Word64) get_Word64(fields, _field_name) Word64 get_Word64(fields, _field_name, default_value) public define Maybe(Word64) get_Word64 ( Var(List(WEB_Session_Field)) fields, String _field_name, ) = if get_field(*fields, word64_t, _field_name) is { failure then failure, success(datum) then if datum is word64(value) then success(value) else failure } . public define Word64 get_Word64 ( Var(List(WEB_Session_Field)) fields, String _field_name, Word64 default_value ) = if get_Word64(fields, _field_name) is { failure then default_value success(value) then value }. public define One put_Word64 ( Var(List(WEB_Session_Field)) fields, String _field_name, Word64 _field_value )= fields <- [session_field(_field_name, word64_t, var(word64(_field_value))) . *fields] . public define One replace_Word64 ( Var(List(WEB_Session_Field)) fields, String _field_name, Word64 _field_value )= replace_any(fields, word64_t, _field_name, word64(_field_value)) . public define One remove_Word64 ( Var(List(WEB_Session_Field)) fields, String _field_name )= remove_any(fields, word64_t, _field_name) . /*************** Word32 *****************/ Maybe(Word32) get_Word32(fields, _field_name) Word32 get_Word32(fields, _field_name, default_value) public define Maybe(Word32) get_Word32 ( Var(List(WEB_Session_Field)) fields, String _field_name, ) = if get_field(*fields, word32_t, _field_name) is { failure then failure, success(datum) then if datum is word32(value) then success(value) else failure } . public define Word32 get_Word32 ( Var(List(WEB_Session_Field)) fields, String _field_name, Word32 default_value ) = if get_Word32(fields, _field_name) is { failure then default_value success(value) then value }. public define One put_Word32 ( Var(List(WEB_Session_Field)) fields, String _field_name, Word32 _field_value )= fields <- [session_field(_field_name, word32_t, var(word32(_field_value))) . *fields] . public define One replace_Word32 ( Var(List(WEB_Session_Field)) fields, String _field_name, Word32 _field_value )= replace_any(fields, word32_t, _field_name, word32(_field_value)) . public define One remove_Word32 ( Var(List(WEB_Session_Field)) fields, String _field_name )= remove_any(fields, word32_t, _field_name) . /*************** Word16 *****************/ Maybe(Word16) get_Word16(fields, _field_name) Word16 get_Word16(fields, _field_name, default_value) public define Maybe(Word16) get_Word16 ( Var(List(WEB_Session_Field)) fields, String _field_name, ) = if get_field(*fields, word16_t, _field_name) is { failure then failure, success(datum) then if datum is word16(value) then success(value) else failure } . public define Word16 get_Word16 ( Var(List(WEB_Session_Field)) fields, String _field_name, Word16 default_value ) = if get_Word16(fields, _field_name) is { failure then default_value success(value) then value }. public define One put_Word16 ( Var(List(WEB_Session_Field)) fields, String _field_name, Word16 _field_value )= fields <- [session_field(_field_name, word16_t, var(word16(_field_value))) . *fields] . public define One replace_Word16 ( Var(List(WEB_Session_Field)) fields, String _field_name, Word16 _field_value )= replace_any(fields, word16_t, _field_name, word16(_field_value)) . public define One remove_Word16 ( Var(List(WEB_Session_Field)) fields, String _field_name )= remove_any(fields, word16_t, _field_name) . /*************** Word8 *****************/ Maybe(Word8) get_Word8(fields, _field_name) Word8 get_Word8(fields, _field_name, default_value) public define Maybe(Word8) get_Word8 ( Var(List(WEB_Session_Field)) fields, String _field_name, ) = if get_field(*fields, word8_t, _field_name) is { failure then failure, success(datum) then if datum is word8(value) then success(value) else failure } . public define Word8 get_Word8 ( Var(List(WEB_Session_Field)) fields, String _field_name, Word8 default_value ) = if get_Word8(fields, _field_name) is { failure then default_value success(value) then value }. public define One put_Word8 ( Var(List(WEB_Session_Field)) fields, String _field_name, Word8 _field_value )= fields <- [session_field(_field_name, word8_t, var(word8(_field_value))) . *fields] . public define One replace_Word8 ( Var(List(WEB_Session_Field)) fields, String _field_name, Word8 _field_value )= replace_any(fields, word8_t, _field_name, word8(_field_value)) . public define One remove_Word8 ( Var(List(WEB_Session_Field)) fields, String _field_name )= remove_any(fields, word8_t, _field_name) . /*************** Word4 *****************/ Maybe(Word4) get_Word4(fields, _field_name) Word4 get_Word4(fields, _field_name, default_value) public define Maybe(Word4) get_Word4 ( Var(List(WEB_Session_Field)) fields, String _field_name, ) = if get_field(*fields, word4_t, _field_name) is { failure then failure, success(datum) then if datum is word4(value) then success(value) else failure } . public define Word4 get_Word4 ( Var(List(WEB_Session_Field)) fields, String _field_name, Word4 default_value ) = if get_Word4(fields, _field_name) is { failure then default_value success(value) then value }. public define One put_Word4 ( Var(List(WEB_Session_Field)) fields, String _field_name, Word4 _field_value )= fields <- [session_field(_field_name, word4_t, var(word4(_field_value))) . *fields] . public define One replace_Word4 ( Var(List(WEB_Session_Field)) fields, String _field_name, Word4 _field_value )= replace_any(fields, word4_t, _field_name, word4(_field_value)) . public define One remove_Word4 ( Var(List(WEB_Session_Field)) fields, String _field_name )= remove_any(fields, word4_t, _field_name) . public define String dump_WEB_Session_Field ( WEB_Session_Field _field )= with name = "Name = ["+_field.field_name+"]", if *_field.field_datum is { string(_string) then name+", Type = String, Value = ["+_string+"]", bool(_bool) then name+", Type = Bool, Value = ["+to_String(_bool)+"]", int(_int) then name+", Type = Int, Value = ["+_int+"]", db_id(_db_id) then name+", Type = DB_id, Value = ["+_db_id+"]", message(_message) then name+", Type = Message, Value = ["+dump(_message)+"]", byte_array(_byte_array) then name+", Type = ByteArray", float(_float) then name+", Type = Float, Value = ["+float_to_string(_float, 10)+"]", word128(_word128) then name+", Type = Word128, Value = ["+to_decimal(_word128)+"]", word64(_word64) then name+", Type = Word64, Value = ["+to_decimal(_word64)+"]", word32(_word32) then name+", Type = Word32, Value = ["+to_decimal(_word32)+"]", word16(_word16) then name+", Type = Word16, Value = ["+to_decimal(_word16)+"]", word8(_word8) then name+", Type = Word8, Value = ["+to_decimal(_word8)+"]", word4(_word4) then name+", Type = Word4, Value = ["+to_decimal(_word4)+"]", } . public define String dump_WEB_Session_Field_list ( List(WEB_Session_Field) _fields )= join("\n", map((WEB_Session_Field _field) |-> dump_WEB_Session_Field(_field), _fields)) . public define String dump_WEB_Session_Fields ( List(WEB_Session_Field) _fields )= "\n"+ "-- BEGIN Fields of Session:---------------- \n"+ join("\n", map((WEB_Session_Field _field) |-> dump_WEB_Session_Field(_field), _fields))+ "\n-- END Fields of Session:---------------- \n" . public define String dump_WEB_Session_Fields ( Var(List(WEB_Session_Field)) _fields )= dump_WEB_Session_Fields(*_fields) . *---------------------- DUMP ------------------* String language, List(WEB_Session_Field) fields, WEB_Request web_request, WEB_Request previous_web_request public define String dump ( WEB_Session _session )= since _session is web_session(language, fields, web_request, previous_web_request), "WEB Session Dump: \n"+ "----------------- \n"+ "Language : ["+language+"]\n\n"+ dump_WEB_Session_Fields(*fields)+ "-----------------------------------------------------------------------------\n"+ "Current WEB REQUEST:\n"+ "-----------------------------------------------------------------------------\n"+ "http_info:\n"+ dump_http_info(web_request.http_info)+"\n"+ "web arguments:"+ dump_web_arg_values(*web_request.lwa)+"\n\n"+ "-----------------------------------------------------------------------------\n"+ "Previous WEB REQUEST:\n"+ "-----------------------------------------------------------------------------\n"+ "is https "+to_String(previous_web_request.is_https)+"\n"+ "http_info:\n"+ dump_http_info(previous_web_request.http_info)+"\n"+ "web arguments:"+ dump_web_arg_values(*previous_web_request.lwa)+"\n" .