diff --git a/wrenchboard/src/include/wrenchboard_api.h b/wrenchboard/src/include/wrenchboard_api.h index b4a271d6..6d6da91f 100644 --- a/wrenchboard/src/include/wrenchboard_api.h +++ b/wrenchboard/src/include/wrenchboard_api.h @@ -270,6 +270,7 @@ enum { PARTNER_STRIPE }; #define WRENCHBOARD_JOB_MRKTINT_QUEST 13037 #define WRENCHBOARD_JOB_REPLY_QUESTION 13038 #define WRENCHBOARD_JOB_INT_QUESTLST 13039 +#define WRENCHBOARD_JOB_WAITING_INT 13040 #define WRENCHBOARD_JOB_EXTEND_EXPIRE 13041 #define WRENCHBOARD_JOB_RESEND_MESSAGE 13042 diff --git a/wrenchboard/src/shared_tool/jobs.cc b/wrenchboard/src/shared_tool/jobs.cc index 8d9678ac..9dc7596b 100644 --- a/wrenchboard/src/shared_tool/jobs.cc +++ b/wrenchboard/src/shared_tool/jobs.cc @@ -29,6 +29,7 @@ long WrenchJobPostCancelOffer(CVars in, CVars &out); long WrenchJobOfferSystems(CVars in, CVars &out); long WrenchSendJobsOfferFamily(CVars in, CVars &out); long WrenchJobsOfferInterestList(CVars in, CVars &out); +long WrenchUserJobsInterestList(CVars in, CVars &out); long jobs_calls(CVars in, CVars &out) { logfmt(logINFO, "jobs_calls()"); @@ -108,7 +109,11 @@ long jobs_calls(CVars in, CVars &out) { break; case WRENCHBOARD_JOB_OFFER_INTLIST: - return WrenchJobsOfferInterestList(in, out); + return WrenchJobsOfferInterestList(in, out); // people looking at your job + break; + + case WRENCHBOARD_JOB_WAITING_INT: // waiting interest + return WrenchUserJobsInterestList(in, out); // me looking at your job break; case WRENCHBOARD_JOB_SEND_INTEREST: @@ -262,6 +267,105 @@ long WrenchJobPostAgree(CVars in, CVars &out) { return ret; } +long WrenchUserJobsInterestList(CVars in, CVars &out) { + long ret = PHP_API_BAD_PARAM; + char vname[30]; + out = in; + try { + long member_id = REQ_LONG(in, "member_id", 1, -1); + long offset = REQ_LONG(in, "offset", 1, -1); + long limit = REQ_LONG(in, "limit", 1, -1); + + const PGresult *res = pgsql_query("SELECT mm.id AS client_id, mm.uid AS client_uid, " + " mm.firstname AS client_name, m.offer_code, m.uid AS offer_uid, " + " mo.member_id, mm.added::date AS client_added, to_char(mo.added, 'Dy Mon dd, yyyy HH:MI AM') AS sent, " + " j.title,j.description,m.job_id,to_char( m.expire, 'Dy Mon dd, yyyy HH:MI AM') AS expire,j.price AS job_price,mo.uid AS interest_uid " + " FROM members_offer_interest mo " + " LEFT JOIN members_jobs_offer m ON m.id = mo.offer_id " + " LEFT JOIN members_jobs j ON j.id=m.job_id " + " LEFT JOIN members mm ON mm.id = mo.member_id " + " WHERE m.status = 1 AND m.client_id=0 " + " AND m.expire IS NOT NULL AND m.expire> now() " + " AND m.member_id = %lu ORDER BY mo.added DESC LIMIT %lu OFFSET %lu",member_id, limit, offset); + 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), "interest_uid_%05d", i); + out[vname] = rec["interest_uid"]; + + snprintf(vname, sizeof (vname), "client_id_%05d", i); + out[vname] = rec["client_id"]; + + snprintf(vname, sizeof (vname), "client_uid_%05d", i); + out[vname] = rec["client_uid"]; + + snprintf(vname, sizeof (vname), "client_name_%05d", i); + out[vname] = rec["client_name"]; + + snprintf(vname, sizeof (vname), "client_added_%05d", i); + out[vname] = rec["client_added"]; + + snprintf(vname, sizeof (vname), "client_jobs_completed_%05d", i); + out[vname] = "0"; + + snprintf(vname, sizeof (vname), "client_jobs_active_%05d", i); + out[vname] = "0"; + + snprintf(vname, sizeof (vname), "client_addedclient_jobs_missed_%05d", i); + out[vname] = "0"; + + snprintf(vname, sizeof (vname), "client_offers_pending_%05d", i); + out[vname] = "0"; + + snprintf(vname, sizeof (vname), "client_percent_completion_%05d", i); + out[vname] = "0"; + + snprintf(vname, sizeof (vname), "client_ratings_%05d", i); + out[vname] = "0"; + + + snprintf(vname, sizeof (vname), "offer_code_%05d", i); + out[vname] = rec["offer_code"]; + + snprintf(vname, sizeof (vname), "offer_uid_%05d", i); + out[vname] = rec["offer_uid"]; + + snprintf(vname, sizeof (vname), "sent_%05d", i); + out[vname] = rec["sent"]; + + 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), "job_id_%05d", i); + out[vname] = rec["job_id"]; + + snprintf(vname, sizeof (vname), "expire_%05d", i); + out[vname] = rec["expire"]; + + snprintf(vname, sizeof (vname), "price_%05d", i); + out[vname] = rec["job_price"]; + } + + } + ret = PHP_CREATED_OK; + + } catch (bad_parameter) { + out["log_status"] = "Error WrenchJobsOfferInterestList"; + } + return ret; + + } long WrenchJobsOfferInterestList(CVars in, CVars &out) { long ret = PHP_API_BAD_PARAM; diff --git a/www-api/app/Config/Constants.php b/www-api/app/Config/Constants.php index b9de9161..0874ca6b 100644 --- a/www-api/app/Config/Constants.php +++ b/www-api/app/Config/Constants.php @@ -256,6 +256,7 @@ define('WRENCHBOARD_JOB_MRKTINT_QUEST',13037); define('WRENCHBOARD_JOB_REPLY_QUESTION',13038); //define('WRENCHBOARD_JOB_REPLY_QUESTION',13038); define('WRENCHBOARD_JOB_INT_QUESTLST', 13039); +define('WRENCHBOARD_JOB_WAITING_INT', 13040); define('WRENCHBOARD_JOB_EXTEND_EXPIRE' ,13041); define('WRENCHBOARD_JOB_RESEND_MESSAGE',13042); diff --git a/www-api/app/Controllers/WrenchApi.php b/www-api/app/Controllers/WrenchApi.php index 8aa42c9c..0a5ed7bc 100644 --- a/www-api/app/Controllers/WrenchApi.php +++ b/www-api/app/Controllers/WrenchApi.php @@ -438,6 +438,9 @@ class WrenchApi extends BaseController case 'sendinterest':$in["action"] = WRENCHBOARD_USER_SENDJOBINT; $out["internal_return"] = 0; break; + case 'waitinginterest': + $in["action"] = WRENCHBOARD_JOB_WAITING_INT; + break; case 'sendmoneyfee': $in["action"] = WRENCHBOARD_SMONEY_PROCFEE; break; case 'taskmessage': $in["action"] = WRENCHBOARD_MOBILE_TASKMESSAGE;