From 6a5d67f537d1b643e4c7f4e09bdf555c7b3ae4f3 Mon Sep 17 00:00:00 2001 From: Olusesan Ameye Date: Sat, 5 Nov 2022 20:20:14 -0400 Subject: [PATCH] fix --- wrenchboard/src/shared_tool/account_mngt.cc | 75 ++++++++++++++++++--- 1 file changed, 66 insertions(+), 9 deletions(-) diff --git a/wrenchboard/src/shared_tool/account_mngt.cc b/wrenchboard/src/shared_tool/account_mngt.cc index 51bd07e3..37e29c68 100644 --- a/wrenchboard/src/shared_tool/account_mngt.cc +++ b/wrenchboard/src/shared_tool/account_mngt.cc @@ -303,31 +303,59 @@ long WrenchReturnMemberPaymentHx(CVars in, CVars &out) { long WrenchReturnMemberMessages(CVars in, CVars &out) { logfmt(logINFO, "WrenchReturnMemberMessages()"); - char vname[30]; + char vname[60]; + char vname_memo[60]; long ret = PHP_API_BAD_PARAM; + long msg_id = 0; try { long limit = REQ_LONG(in, "limit", 1, -1); long member_id = REQ_LONG(in, "member_id", 1, -1); REQ_LONG(in, "page", 1, -1); OPTIONAL(in, "recent") REQ_LONG(in, "recent", 1, -1); - + + // this section ;limit recent or not recent if ( in["recent"].Long() == 1 ){ - snprintf(vname, sizeof (vname), " AND now() < mm.added + '24 hours' "); + snprintf(vname, sizeof (vname), " AND now() < mm.added + '96 hours' "); } else - {snprintf(vname, sizeof (vname), "' "); + {snprintf(vname, sizeof (vname), " "); + } + + // This section focus the message based on memo + OPTIONAL(in, "msg_id") REQ_LONG(in, "msg_id", 1, -1); + if( in["msg_id"].Long() > 0 ){ + REQ_STRING(in, "uid", 10, 100, "(.*)"); + load_db_record(out, "SELECT TRIM(memo) AS memo FROM members_messages WHERE LOWER(uid::text)= LOWER('%s')", in["uid"].c_str()); + if ( out["memo"] != "" ){ + snprintf(vname_memo, sizeof (vname_memo), " AND LOWER(TRIM(mm.memo)) = LOWER('%s') ",out["memo"].c_str() ); + }else{ + snprintf(vname_memo, sizeof (vname_memo), ""); + } + }else{ + snprintf(vname_memo, sizeof (vname_memo), ""); // clean it up } - - out["total_record"] = "0"; const PGresult *res; - res = pgsql_query("SELECT mm.added::date AS msg_date,mm.msg,mm.id AS msg_id ,mm.senders_id , mm.msg_type, mm.memo,ms.firstname AS msg_from " + /* res = pgsql_query("SELECT mm.added::date AS msg_date,mm.msg,mm.id AS msg_id ,mm.senders_id , mm.msg_type, mm.memo,ms.firstname AS msg_from " "FROM members_messages mm LEFT JOIN members ms ON ms.id =mm.senders_id " "WHERE mm.member_id = %lu " " %s AND mm.reply IS NULL ORDER BY mm.id DESC LIMIT %lu", in["member_id"].Long(),vname, limit); + to_char(mm.added, 'Day Mon dd, yyyy HH:MI AM') AS expire2 + + */ + + + res = pgsql_query("SELECT to_char(mm.added, 'Day Mon dd, yyyy HH:MI AM') AS msg_date,mm.msg,mm.id AS msg_id ,mm.senders_id , mm.msg_type, " + " mm.memo,ms.firstname AS msg_from,mm.reply,mm.member_id,mm.uid,TRIM(mm.memo) AS memo FROM members_messages mm " + " LEFT JOIN members ms ON ms.id =mm.senders_id WHERE mm.senders_id = %lu %s %s" + " UNION " + " SELECT to_char(mm.added, 'Day Mon dd, yyyy HH:MI AM') AS msg_date,mm.msg,mm.id AS msg_id ,mm.senders_id , mm.msg_type, " + " mm.memo,ms.firstname AS msg_from,mm.reply,mm.member_id,mm.uid,TRIM(mm.memo) AS memo FROM members_messages mm " + " LEFT JOIN members ms ON ms.id =mm.senders_id WHERE mm.member_id = %lu %s %s" + " ORDER BY msg_id DESC LIMIT %lu", in["member_id"].Long(),vname,vname_memo, in["member_id"].Long(), vname,vname_memo, limit); if (res != NULL && pgsql_num_rows(res) > 0) { out["total_record"] = pgsql_num_rows(res); @@ -346,10 +374,39 @@ long WrenchReturnMemberMessages(CVars in, CVars &out) { snprintf(vname, sizeof (vname), "msg_%05d", i); out[vname] = rec["msg"]; - + snprintf(vname, sizeof (vname), "msg_from_%05d", i); - out[vname] = rec["msg_from"]; + if (rec["senders_id"] == in["member_id"] ){ + out[vname] = "You"; + } + else{ + out[vname] = rec["msg_from"]; + } + + + snprintf(vname, sizeof (vname), "senders_id_%05d", i); + out[vname] = rec["senders_id"]; + + snprintf(vname, sizeof (vname), "member_id_%05d", i); + out[vname] = rec["member_id"]; + + snprintf(vname, sizeof (vname), "reply_%05d", i); + out[vname] = rec["reply"]; + + snprintf(vname, sizeof (vname), "uid_%05d", i); + out[vname] = rec["uid"]; + + snprintf(vname, sizeof (vname), "memo_%05d", i); + out[vname] = rec["memo"]; + + snprintf(vname, sizeof (vname), "message_mode_%05d", i); + if (rec["senders_id"] == in["member_id"] ){ + out[vname] = "sender"; + } + else{ + out[vname] = "recipient"; + } } } ret = PHP_API_OK;