From 74cc8d57b8eece5efcb1f5fa268134f1fcfb05e3 Mon Sep 17 00:00:00 2001 From: "CHIEFSOFT\\ameye" Date: Sat, 2 Nov 2024 17:00:33 -0400 Subject: [PATCH] Family Request --- wrenchboard/src/shared_tool/account.cc | 60 ++++++++++++++++++++++++- wrenchboard/src/shared_tool/payments.cc | 4 +- 2 files changed, 61 insertions(+), 3 deletions(-) diff --git a/wrenchboard/src/shared_tool/account.cc b/wrenchboard/src/shared_tool/account.cc index 8998234e..1cc8ff97 100644 --- a/wrenchboard/src/shared_tool/account.cc +++ b/wrenchboard/src/shared_tool/account.cc @@ -130,6 +130,7 @@ long test() { long WrenchTestWalletCapability(CVars in, CVars &out); long WrenchImportContacts(CVars in, CVars &out); long WrenchRequestVirtualCard(CVars in, CVars &out); +long WrenchRequestFamilyVirtualCard(CVars in, CVars &out); long account_calls(CVars in, CVars &out) { logfmt(logINFO, "account_calls()"); @@ -511,12 +512,69 @@ long account_calls(CVars in, CVars &out) { case WRENCHBOARD_VIRTUAL_CARDADD: return WrenchRequestVirtualCard(in, out); break; + + case WRENCHBOARD_VIRTUAL_FAMILY_CARD: + return WrenchRequestFamilyVirtualCard(in, out); + break; } logfmt(logINFO, "/account_calls()"); return ret; } -#define PHP_API_TRANSFER_COMPLETE 200 +#define PHP_API_TRANSFER_COMPLETE 200 + +long WrenchRequestFamilyVirtualCard(CVars in, CVars &out) { + CVars x; + long ret = PHP_API_BAD_PARAM; + logfmt(logINFO, "long WrenchRequestFamilyVirtualCard(CVars in, CVars out)"); + + try{ + long member_id = REQ_LONG(in, "member_id", 1, -1); + long request_type = REQ_LONG(in, "request_type", 1, -1); + + REQ_STRING(in, "uid", 20, 100, "(.*)"); + REQ_STRING(in, "family_uid", 20, 100, "(.*)"); + REQ_STRING(in, "address", 5, 150, "(.*)"); + REQ_STRING(in, "city", 2, 50, "(.*)"); + REQ_STRING(in, "state", 1, 15, "(.*)"); + REQ_STRING(in, "country", 1, 3, "(.*)"); + REQ_STRING(in, "postal_code", 1, 10, "(.*)"); + REQ_STRING(in, "phone_number", 5, 15, "(.*)"); + + long dob_day = REQ_LONG(in, "dob_day", 1, -1); + long dob_month = REQ_LONG(in, "dob_month", 1, -1); + long dob_year = REQ_LONG(in, "dob_year", 1, -1); + + const PGresult *res = pgsql_query("SELECT m.uid::text AS target_uid FROM members_family f LEFT JOIN members m ON m.id = f.family_member_id WHERE f.uid::text='%s'", in["family_uid"].c_str()); + if (res != NULL && pgsql_num_rows(res) > 0) { + mapf = pgsql_fetch_assoc(res, 0); + CVars rec; + map_to_cvars(f, rec); + + x["member_id"] = member_id; x["member_id"].set_valid(true); + x["member_uid"] = in["uid"]; x["member_uid"].set_valid(true); + x["target_uid"] = rec["target_uid"]; x["target_uid"].set_valid(true); // + x["address"] = in["address"]; x["address"].set_valid(true); + x["request_type"] = in["request_type"]; x["request_type"].set_valid(true); + x["city"] = in["city"]; x["city"].set_valid(true); + x["state"] = in["state"]; x["state"].set_valid(true); + x["country"] = in["country"]; x["country"].set_valid(true); + x["postal_code"] = in["postal_code"]; x["postal_code"].set_valid(true); + x["phone_number"] = in["phone_number"]; x["phone_number"].set_valid(true); + x["dob_day"] = in["dob_day"]; x["dob_day"].set_valid(true); + x["dob_month"] = in["dob_month"]; x["dob_month"].set_valid(true); + x["dob_year"] = in["dob_year"]; x["dob_year"].set_valid(true); + return WrenchRequestVirtualCard( x, out ); + } else { + + + + } + } catch (bad_parameter) { + out["status"] = "ERROR"; + } + return ret; +} long WrenchRequestVirtualCard(CVars in, CVars &out) { CVars x; diff --git a/wrenchboard/src/shared_tool/payments.cc b/wrenchboard/src/shared_tool/payments.cc index 1d623e9f..cb05d7f6 100644 --- a/wrenchboard/src/shared_tool/payments.cc +++ b/wrenchboard/src/shared_tool/payments.cc @@ -401,10 +401,10 @@ long AssignVirtualCardWallet(CVars in,CVars out){ REQ_STRING(in, "request_uid", 12, 160, "(.*)"); long request_id = REQ_LONG(in, "request_id", 0, -1); - if ( load_db_record( y, "SELECT * FROM members_card_request WHERE status = %lu AND uid::text ='%s' AND id =%lu",CARD_ACTIVATE_CARD, in["request_uid"].c_str(),request_id ) > 0 ) + if ( load_db_record( y, "SELECT r.*,m.id AS target_member_id FROM members_card_request r LEFT JOIN members m ON m.uid::text=r.target_uid::text WHERE r.status = %lu AND r.uid::text ='%s' AND r.id =%lu",CARD_ACTIVATE_CARD, in["request_uid"].c_str(),request_id ) > 0 ) { CVars x; - x["member_id"] = y["member_id"]; x["member_id"].set_valid( true ); + x["member_id"] = y["target_member_id"]; x["member_id"].set_valid( true ); x["currency"] = "VUSD"; x["currency"].set_valid( true ); x["transfer_limit"] = "100000"; x["transfer_limit"].set_valid( true ); x["card_issue_id"] = y["card_issue_id"]; x["card_issue_id"].set_valid( true );