%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%%% General Public License for more details.
-%%%
+%%%
%%% You should have received a copy of the GNU General Public License
%%% along with this program; if not, write to the Free Software
%%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
get_sm_features({error, _Error} = Acc, _From, _To, _Node, _Lang) ->
Acc;
-
+
get_sm_features(Acc, _From, _To, Node, _Lang) ->
case Node of
[] ->
get ->
#jid{luser = LUser, lserver = LServer} = To,
Username = ejabberd_odbc:escape(LUser),
- case catch ejabberd_odbc:sql_query(
- LServer,
- ["select vcard from vcard "
- "where username='", Username, "';"]) of
+ case catch odbc_queries:get_vcard(LServer, Username) of
{selected, ["vcard"], [{SVCARD}]} ->
case xml_stream:parse_element(SVCARD) of
{error, _Reason} ->
SOrgUnit = ejabberd_odbc:escape(OrgUnit),
SLOrgUnit = ejabberd_odbc:escape(LOrgUnit),
- ejabberd_odbc:sql_transaction(
- LServer,
- [["delete from vcard where username='", LUsername, "';"],
- ["insert into vcard(username, vcard) "
- "values ('", LUsername, "', '", SVCARD, "');"],
- ["delete from vcard_search where lusername='", LUsername, "';"],
- ["insert into vcard_search("
- " username, lusername, fn, lfn, family, lfamily,"
- " given, lgiven, middle, lmiddle, nickname, lnickname,"
- " bday, lbday, ctry, lctry, locality, llocality,"
- " email, lemail, orgname, lorgname, orgunit, lorgunit)"
- "values (",
- " '", Username, "', '", LUsername, "',"
- " '", SFN, "', '", SLFN, "',"
- " '", SFamily, "', '", SLFamily, "',"
- " '", SGiven, "', '", SLGiven, "',"
- " '", SMiddle, "', '", SLMiddle, "',"
- " '", SNickname, "', '", SLNickname, "',"
- " '", SBDay, "', '", SLBDay, "',"
- " '", SCTRY, "', '", SLCTRY, "',"
- " '", SLocality, "', '", SLLocality, "',"
- " '", SEMail, "', '", SLEMail, "',"
- " '", SOrgName, "', '", SLOrgName, "',"
- " '", SOrgUnit, "', '", SLOrgUnit, "');"]])
+ odbc_queries:set_vcard(LServer, LUsername, SBDay, SCTRY, SEMail,
+ SFN, SFamily, SGiven, SLBDay, SLCTRY,
+ SLEMail, SLFN, SLFamily, SLGiven,
+ SLLocality, SLMiddle, SLNickname,
+ SLOrgName, SLOrgUnit, SLocality,
+ SMiddle, SNickname, SOrgName,
+ SOrgUnit, SVCARD, Username)
end.
-define(TLFIELD(Type, Label, Var),
Packet, ?ERR_NOT_ALLOWED),
ejabberd_router:route(To, From, Err);
get ->
- ResIQ =
+ ResIQ =
IQ#iq{type = result,
sub_el = [{xmlelement,
"query",
jlib:iq_to_xml(ResIQ))
end;
#iq{type = get, xmlns = ?NS_VCARD, lang = Lang} ->
- ResIQ =
+ ResIQ =
IQ#iq{type = result,
sub_el = [{xmlelement,
"vCard",
% true ->
% mnesia:write(
% #vcard_search{us = US,
-% user = User, luser = LUser,
-% fn = FN, lfn = LFN,
-% family = Family, lfamily = LFamily,
-% given = Given, lgiven = LGiven,
-% middle = Middle, lmiddle = LMiddle,
-% nickname = Nickname, lnickname = LNickname,
-% bday = BDay, lbday = LBDay,
-% ctry = CTRY, lctry = LCTRY,
-% locality = Locality, llocality = LLocality,
-% email = EMail, lemail = LEMail,
-% orgname = OrgName, lorgname = LOrgName,
-% orgunit = OrgUnit, lorgunit = LOrgUnit
+% user = User, luser = LUser,
+% fn = FN, lfn = LFN,
+% family = Family, lfamily = LFamily,
+% given = Given, lgiven = LGiven,
+% middle = Middle, lmiddle = LMiddle,
+% nickname = Nickname, lnickname = LNickname,
+% bday = BDay, lbday = LBDay,
+% ctry = CTRY, lctry = LCTRY,
+% locality = Locality, llocality = LLocality,
+% email = EMail, lemail = LEMail,
+% orgname = OrgName, lorgname = LOrgName,
+% orgunit = OrgUnit, lorgunit = LOrgUnit
% })
% end.
%
LServer,
[["delete from vcard where username='", Username, "';"],
["delete from vcard_search where lusername='", Username, "';"]]).
-
-