diff --git a/wrenchboard/src/include/account_mngt.h b/wrenchboard/src/include/account_mngt.h index 25001cdc..5b7e4824 100644 --- a/wrenchboard/src/include/account_mngt.h +++ b/wrenchboard/src/include/account_mngt.h @@ -12,6 +12,7 @@ long WrenchReturnMemberMessages(CVars in, CVars &out); long WrenchMemberActiveJobs(CVars in, CVars &out); long WrenchReturnMemberPaymentHx(CVars in, CVars &out); long WrenchReturnMemberBankAccount(CVars in, CVars &out); +long WrenchAccountSettings( CVars in, CVars &out ); #endif diff --git a/wrenchboard/src/include/wrenchboard_api.h b/wrenchboard/src/include/wrenchboard_api.h index b7e3ea89..95150aa8 100644 --- a/wrenchboard/src/include/wrenchboard_api.h +++ b/wrenchboard/src/include/wrenchboard_api.h @@ -209,6 +209,7 @@ enum { PARTNER_STRIPE }; #define WRENCHBOARD_USER_CARDLIST 11055 #define WRENCHBOARD_USER_USESAVEDCC 11056 #define WRENCHBOARD_USER_SETTINGS 11058 +#define WRENCHBOARD_GETUSER_SETTINGS 11059 #define WRENCHBOARD_ACCOUNT_WALLETS 11060 diff --git a/wrenchboard/src/shared_tool/account.cc b/wrenchboard/src/shared_tool/account.cc index b441f116..889208bc 100644 --- a/wrenchboard/src/shared_tool/account.cc +++ b/wrenchboard/src/shared_tool/account.cc @@ -370,6 +370,10 @@ long account_calls(CVars in, CVars &out) { return WrenchCardRechargePayment(in, out); break; + case WRENCHBOARD_GETUSER_SETTINGS: + return WrenchAccountSettings(in, out); + break; + case WRENCHBOARD_USER_SETTINGS: REQ_LONG(in, "member_id", 1, -1); REQ_STRING(in, "pref_id", 4, 6, "(.*)"); diff --git a/wrenchboard/src/shared_tool/account_mngt.cc b/wrenchboard/src/shared_tool/account_mngt.cc index e6dbfb5e..10dd56c2 100644 --- a/wrenchboard/src/shared_tool/account_mngt.cc +++ b/wrenchboard/src/shared_tool/account_mngt.cc @@ -791,4 +791,64 @@ ADD CONSTRAINT members_pending_id_key UNIQUE (id); return ret; } + +long WrenchAccountSettings( CVars in, CVars &out ){ + logfmt(logINFO, "WrenchAccountSettings()"); + char vname[30]; + long ret = PHP_API_BAD_PARAM; + const PGresult *res; + const PGresult *res; + + try { + long member_id = REQ_LONG(in, "member_id", 1, -1); + + res0 = pgsql_query("SELECT pref_id,status FROM members_settings WHERE member_id = %lu",member_id); + if (res0 != NULL && pgsql_num_rows(res0) > 0) { + for (int i = 0, n = pgsql_num_rows(res0); i < n; i++) { + mapf = pgsql_fetch_assoc(res0, i); + if (f.empty()) continue; + CVars rec; + map_to_cvars(f, rec); + snprintf(vname, sizeof (vname), "%s_%05d",rec["pref_id"].c_str(), i); + out[vname] = rec["status"]; + } + } + + + + out["total_record"] = "0"; + res = pgsql_query("SELECT id,title,description,pref_id FROM members_settings_options ORDER BY lorder ASC"); + if (res != NULL && pgsql_num_rows(res) > 0) { + out["total_record"] = pgsql_num_rows(res); + + for (int i = 0, n = pgsql_num_rows(res); i < n; i++) { + mapf = pgsql_fetch_assoc(res, i); + if (f.empty()) continue; + CVars rec; + map_to_cvars(f, rec); + + snprintf(vname, sizeof (vname), "id_%05d", i); + out[vname] = rec["id"]; + + snprintf(vname, sizeof (vname), "title_%05d", i); + out[vname] = rec["title"]; + + snprintf(vname, sizeof (vname), "description_%05d", i); + out[vname] = rec["description"]; + + snprintf(vname, sizeof (vname), "pref_id_%05d", i); + out[vname] = rec["pref_id"]; + + // snprintf(vname, sizeof (vname), "user_value_%05d", i); + // out[vname] = rec["user_value"]; + } + } + ret = PHP_API_OK; + out["status"] = "OK"; + } catch (bad_parameter) { + logfmt(logINFO, "ERROR CALL long WrenchAccountSettings(CVars in, CVars &out)"); + } + logfmt(logINFO, "/WrenchAccountSettings()"); + return ret; +} //****************************************************************************** \ No newline at end of file diff --git a/www-api/app/Config/Constants.php b/www-api/app/Config/Constants.php index 5fac2538..a5d106b7 100644 --- a/www-api/app/Config/Constants.php +++ b/www-api/app/Config/Constants.php @@ -224,6 +224,9 @@ define('WRENCHBOARD_USER_ADNEWCC', 11054); define('WRENCHBOARD_USER_CARDLIST', 11055); define('WRENCHBOARD_USER_USESAVEDCC', 11056); +define('WRENCHBOARD_USER_SETTINGS', 11058); +define('WRENCHBOARD_GETUSER_SETTINGS', 11059); + define('WRENCHBOARD_ACCOUNT_WALLETS', 11060); define('WRENCHBOARD_ACCOUNT_PREPARE_TOPUP', 11062); define('WRENCHBOARD_ACCOUNT_COMPLETE_TOPUP', 11063); diff --git a/www-api/app/Config/Routes.php b/www-api/app/Config/Routes.php index 7c8dbff1..3cb04765 100644 --- a/www-api/app/Config/Routes.php +++ b/www-api/app/Config/Routes.php @@ -172,6 +172,9 @@ $routes->post('/en/wrench/api/v1/offerinterestlistmsg', 'WrenchApi::apigate'); $routes->post('/en/wrench/api/v1/resources', 'WrenchResources::website'); $routes->post('/en/wrench/api/v1/askresources', 'WrenchResources::aigate'); +$routes->post('/en/wrench/api/v1/setaccsettings', 'WrenchApi::apigate'); +$routes->post('/en/wrench/api/v1/getaccsettings', 'WrenchApi::apigate'); + $routes->get('/en/wrench/api/v1/blogdata/', 'WrenchBlog::website'); $routes->get('/en/wrench/api/v1/blogdata/(:any)', 'WrenchBlog::blogLimitedData/$1'); diff --git a/www-api/app/Controllers/BaseController.php b/www-api/app/Controllers/BaseController.php index 73943cbd..7faf6744 100644 --- a/www-api/app/Controllers/BaseController.php +++ b/www-api/app/Controllers/BaseController.php @@ -195,6 +195,8 @@ abstract class BaseController extends Controller 'familywaitingtasks' => ['POST'], 'startcredit' => ['POST'], 'confirmcredit' => ['POST'], + 'setaccsettings' => ['POST'], + 'getaccsettings' => ['POST'], ]; return $endpoints; } diff --git a/www-api/app/Controllers/WrenchApi.php b/www-api/app/Controllers/WrenchApi.php index f6307ceb..0ad4059d 100644 --- a/www-api/app/Controllers/WrenchApi.php +++ b/www-api/app/Controllers/WrenchApi.php @@ -19,6 +19,13 @@ class WrenchApi extends BaseController } private function prepareEndPointData($endpoint, $in, &$call_backend=true,&$local_out=[]){ switch ($endpoint) { + case 'setaccsettings': + $in["action"] = WRENCHBOARD_USER_SETTINGS; + break; + case 'getaccsettings': + $in["action"] = WRENCHBOARD_GETUSER_SETTINGS; + break; + case 'mynotifications': $in["action"] = WRENCHBOARD_ACCOUNT_NOTIFICATIONS; break;