X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/e8755e448558202feb64092ef8b1d91569ecc7db..feed7e6b905650306ae3166ecf91c144ecffa6e7:/projects/sgconf/services.cpp diff --git a/projects/sgconf/services.cpp b/projects/sgconf/services.cpp index f5d73742..b6ce1a33 100644 --- a/projects/sgconf/services.cpp +++ b/projects/sgconf/services.cpp @@ -3,6 +3,7 @@ #include "api_action.h" #include "options.h" #include "config.h" +#include "utils.h" #include "stg/servconf.h" #include "stg/servconf_types.h" @@ -115,20 +116,34 @@ return proto.DelService(arg, SimpleCallback, NULL) == STG::st_ok; bool AddServiceFunction(const SGCONF::CONFIG & config, const std::string & arg, - const std::map & /*options*/) + const std::map & options) { -// TODO -std::cerr << "Unimplemented.\n"; -return false; +SERVICE_CONF_RES conf; +conf.name = arg; +SGCONF::MaybeSet(options, "cost", conf.cost); +SGCONF::MaybeSet(options, "pay-day", conf.payDay); +SGCONF::MaybeSet(options, "comment", conf.comment); +STG::SERVCONF proto(config.server.data(), + config.port.data(), + config.userName.data(), + config.userPass.data()); +return proto.AddService(arg, conf, SimpleCallback, NULL) == STG::st_ok; } bool ChgServiceFunction(const SGCONF::CONFIG & config, const std::string & arg, const std::map & options) { -// TODO -std::cerr << "Unimplemented.\n"; -return false; +SERVICE_CONF_RES conf; +conf.name = arg; +SGCONF::MaybeSet(options, "cost", conf.cost); +SGCONF::MaybeSet(options, "pay-day", conf.payDay); +SGCONF::MaybeSet(options, "comment", conf.comment); +STG::SERVCONF proto(config.server.data(), + config.port.data(), + config.userName.data(), + config.userPass.data()); +return proto.ChgService(conf, SimpleCallback, NULL) == STG::st_ok; } } // namespace anonymous