diff --git a/wrenchboard/src/include/account_mngt.h b/wrenchboard/src/include/account_mngt.h index 5b7e4824..3f02827f 100644 --- a/wrenchboard/src/include/account_mngt.h +++ b/wrenchboard/src/include/account_mngt.h @@ -9,6 +9,7 @@ long CreateWrenchBoardAccountPending(CVars in, CVars &out); long CompleteMobileAccountCreation(CVars in, CVars &out); long WrenchReturnJobList(CVars in, CVars &out); long WrenchReturnMemberMessages(CVars in, CVars &out); +long WrenchMemberMarketMessages(CVars in, CVars &out) long WrenchMemberActiveJobs(CVars in, CVars &out); long WrenchReturnMemberPaymentHx(CVars in, CVars &out); long WrenchReturnMemberBankAccount(CVars in, CVars &out); diff --git a/wrenchboard/src/shared_tool/account.cc b/wrenchboard/src/shared_tool/account.cc index 65103107..74b97bc4 100644 --- a/wrenchboard/src/shared_tool/account.cc +++ b/wrenchboard/src/shared_tool/account.cc @@ -154,7 +154,8 @@ long account_calls(CVars in, CVars &out) { break; case WRENCHBOARD_MOBILE_MESSAGE: - return WrenchReturnMemberMessages(in, out); + // return WrenchReturnMemberMessages(in, out); + return WrenchMemberMarketMessages(in, out); break; case WRENCHBOARD_MOBILE_ACTIVEJOB: diff --git a/wrenchboard/src/shared_tool/account_mngt.cc b/wrenchboard/src/shared_tool/account_mngt.cc index 4bc59d0b..0ec41d24 100644 --- a/wrenchboard/src/shared_tool/account_mngt.cc +++ b/wrenchboard/src/shared_tool/account_mngt.cc @@ -302,6 +302,99 @@ long WrenchReturnMemberPaymentHx(CVars in, CVars &out) { } +long WrenchMemberMarketMessages(CVars in, CVars &out) { + logfmt(logINFO, "WrenchMemberMarketMessages()"); + 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); + REQ_STRING(in, "contract", 5, 25, "(.*)"); + + // this section ;limit recent or not recent + if ( in["recent"].Long() == 1 ){ + snprintf(vname, sizeof (vname), " AND now() < mm.added + '96 hours' "); + } + else + {snprintf(vname, sizeof (vname), " "); + } + + snprintf(vname_memo, sizeof (vname_memo), " AND LOWER(TRIM(mm.memo)) = LOWER('%s') ",in["contract"].c_str() ); + out["total_record"] = "0"; + + const PGresult *res; + + 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" + " ORDER BY msg_id DESC LIMIT %lu", in["member_id"].Long(),vname,vname_memo, limit); + + 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), "msg_id_%05d", i); + out[vname] = rec["msg_id"]; + + snprintf(vname, sizeof (vname), "msg_date_%05d", i); + out[vname] = rec["msg_date"]; + + snprintf(vname, sizeof (vname), "msg_%05d", i); + out[vname] = rec["msg"]; + + snprintf(vname, sizeof (vname), "msg_from_%05d", i); + 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; + out["status"] = "OK"; + } catch (bad_parameter) { + logfmt(logINFO, "ERROR CALL long WrenchMemberMarketMessages(CVars in, CVars &out)"); + } + logfmt(logINFO, "/WrenchMemberMarketMessages()"); + return ret; +} + long WrenchReturnMemberMessages(CVars in, CVars &out) { logfmt(logINFO, "WrenchReturnMemberMessages()"); char vname[60]; diff --git a/wrenchboard/src/shared_tool/mobile.cc b/wrenchboard/src/shared_tool/mobile.cc index b94afe7d..20225c4f 100644 --- a/wrenchboard/src/shared_tool/mobile.cc +++ b/wrenchboard/src/shared_tool/mobile.cc @@ -49,7 +49,8 @@ long mobile_calls(CVars in, CVars &out) { break; case WRENCHBOARD_MOBILE_MESSAGE: - return WrenchReturnMemberMessages(in, out); + //return WrenchReturnMemberMessages(in, out); + return WrenchMemberMarketMessages(in, out); break; case WRENCHBOARD_MOBILE_PAYMENTHX: return WrenchReturnMemberPaymentHx( in, out);