diff options
author | Mickaël Rémond <mickael.remond@process-one.net> | 2006-11-05 15:51:26 +0000 |
---|---|---|
committer | Mickaël Rémond <mickael.remond@process-one.net> | 2006-11-05 15:51:26 +0000 |
commit | d571a564d3cc4686327020f632e6d4ac98376593 (patch) | |
tree | 44c856eb399683556c0812f03fa5de142966de01 /src/mod_private_odbc.erl | |
parent | * src/odbc/mysql: Database creation script should now be compliant with (diff) |
* src/mod_private_odbc.erl: Support for MySQL and MSSQL.
* src/odbc/odbc_queries.erl: Likewise.
* src/odbc/mysql.sql: Likewise.
* src/odbc/mssql.sql: Likewise.
SVN Revision: 674
Diffstat (limited to 'src/mod_private_odbc.erl')
-rw-r--r-- | src/mod_private_odbc.erl | 26 |
1 files changed, 6 insertions, 20 deletions
diff --git a/src/mod_private_odbc.erl b/src/mod_private_odbc.erl index d6f5805a..45e07233 100644 --- a/src/mod_private_odbc.erl +++ b/src/mod_private_odbc.erl @@ -46,7 +46,7 @@ process_sm_iq(From, _To, #iq{type = Type, sub_el = SubEl} = IQ) -> set_data(LUser, LServer, El) end, Els) end, - ejabberd_odbc:sql_transaction(LServer, F), + odbc_queries:sql_transaction(LServer, F), IQ#iq{type = result, sub_el = [{xmlelement, Name, Attrs, []}]}; get -> @@ -64,7 +64,7 @@ process_sm_iq(From, _To, #iq{type = Type, sub_el = SubEl} = IQ) -> IQ#iq{type = error, sub_el = [SubEl, ?ERR_NOT_ALLOWED]} end. -set_data(LUser, _LServer, El) -> +set_data(LUser, LServer, El) -> case El of {xmlelement, _Name, Attrs, _Els} -> XMLNS = xml:get_attr_s("xmlns", Attrs), @@ -76,14 +76,7 @@ set_data(LUser, _LServer, El) -> LXMLNS = ejabberd_odbc:escape(XMLNS), SData = ejabberd_odbc:escape( lists:flatten(xml:element_to_string(El))), - ejabberd_odbc:sql_query_t( - ["delete from private_storage " - "where username='", Username, "' and " - "namespace='", LXMLNS, "';"]), - ejabberd_odbc:sql_query_t( - ["insert into private_storage(username, namespace, data) " - "values ('", Username, "', '", LXMLNS, "', " - "'", SData, "');"]) + odbc_queries:set_private_data(LServer, Username, LXMLNS, SData) end; _ -> ignore @@ -100,17 +93,14 @@ get_data(LUser, LServer, [El | Els], Res) -> XMLNS = xml:get_attr_s("xmlns", Attrs), Username = ejabberd_odbc:escape(LUser), LXMLNS = ejabberd_odbc:escape(XMLNS), - case catch ejabberd_odbc:sql_query( - LServer, - ["select data from private_storage " - "where username='", Username, "' and " - "namespace='", LXMLNS, "';"]) of + case catch odbc_queries:get_private_data(LServer, Username, LXMLNS) of {selected, ["data"], [{SData}]} -> case xml_stream:parse_element(SData) of Data when element(1, Data) == xmlelement -> get_data(LUser, LServer, Els, [Data | Res]) end; + %% MREMOND: I wonder when the query could return a vcard ? {selected, ["vcard"], []} -> get_data(LUser, LServer, Els, [El | Res]) @@ -124,8 +114,4 @@ remove_user(User, Server) -> LUser = jlib:nodeprep(User), LServer = jlib:nameprep(Server), Username = ejabberd_odbc:escape(LUser), - ejabberd_odbc:sql_transaction( - LServer, - ["delete from private_storage where username='", Username, "';"]). - - + odbc_queries:del_user_private_storage(LServer, Username). |