X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/baaffcbb18847d38ac7413c91abc361eaad8007b..05e29980ab6ee71b0436f7ca58d109a79a512b0f:/stglibs/srvconf.lib/parsers/chg_user.cpp?ds=inline diff --git a/stglibs/srvconf.lib/parsers/chg_user.cpp b/stglibs/srvconf.lib/parsers/chg_user.cpp index ed2002bc..01361d08 100644 --- a/stglibs/srvconf.lib/parsers/chg_user.cpp +++ b/stglibs/srvconf.lib/parsers/chg_user.cpp @@ -25,13 +25,28 @@ #include "stg/user_conf.h" #include "stg/user_stat.h" +#include "stg/common.h" #include <sstream> +#include <iostream> #include <strings.h> using namespace STG; +namespace +{ + +RESETABLE<std::string> MaybeEncode(const RESETABLE<std::string> & value) +{ +RESETABLE<std::string> res; +if (!value.empty()) + res = Encode12str(value.data()); +return res; +} + +} + CHG_USER::PARSER::PARSER(SIMPLE::CALLBACK f, void * d) : callback(f), data(d), @@ -87,24 +102,33 @@ appendResetable(stream, "ip", conf.ips); // TODO: ip -> ips if (!conf.nextTariff.empty()) stream << "<tariff delayed=\"" << conf.nextTariff.data() << "\"/>"; else if (!conf.tariffName.empty()) - stream << "<tariff now=\"" << conf.nextTariff.data() << "\"/>"; + stream << "<tariff now=\"" << conf.tariffName.data() << "\"/>"; -appendResetable(stream, "note", conf.note); -appendResetable(stream, "name", conf.realName); // TODO: name -> realName -appendResetable(stream, "address", conf.address); -appendResetable(stream, "email", conf.email); -appendResetable(stream, "phone", conf.phone); -appendResetable(stream, "group", conf.group); +appendResetable(stream, "note", MaybeEncode(conf.note)); +appendResetable(stream, "name", MaybeEncode(conf.realName)); // TODO: name -> realName +appendResetable(stream, "address", MaybeEncode(conf.address)); +appendResetable(stream, "email", MaybeEncode(conf.email)); +appendResetable(stream, "phone", MaybeEncode(conf.phone)); +appendResetable(stream, "group", MaybeEncode(conf.group)); +appendResetable(stream, "corp", conf.group); for (size_t i = 0; i < conf.userdata.size(); ++i) - appendResetable(stream, "userdata", i, conf.userdata[i]); + appendResetable(stream, "userdata", i, MaybeEncode(conf.userdata[i])); + +if (!conf.services.empty()) + { + stream << "<services>"; + for (size_t i = 0; i < conf.services.data().size(); ++i) + stream << "<service name=\"" << conf.services.data()[i] << "\"/>"; + stream << "</services>"; + } // Stat if (!stat.cashAdd.empty()) - stream << "<cash add=\"" << stat.cashAdd.data().first << "\" msg=\"" << stat.cashAdd.data().second << "\"/>"; + stream << "<cash add=\"" << stat.cashAdd.data().first << "\" msg=\"" << Encode12str(stat.cashAdd.data().second) << "\"/>"; else if (!stat.cashSet.empty()) - stream << "<cash set=\"" << stat.cashAdd.data().first << "\" msg=\"" << stat.cashAdd.data().second << "\"/>"; + stream << "<cash set=\"" << stat.cashSet.data().first << "\" msg=\"" << Encode12str(stat.cashSet.data().second) << "\"/>"; appendResetable(stream, "freeMb", stat.freeMb); @@ -126,5 +150,6 @@ std::string traffData = traff.str(); if (!traffData.empty()) stream << "<traff" << traffData << "/>"; +std::cerr << stream.str() << "\n"; return stream.str(); }