first commit
This commit is contained in:
@@ -0,0 +1,265 @@
|
||||
// Mobile management toosl
|
||||
#include "clog.h"
|
||||
#include "cgi.h"
|
||||
#include "input.h"
|
||||
#include "wrenchboard_api.h"
|
||||
#include "mobile.h"
|
||||
#include "email.h"
|
||||
#include "safestring.h"
|
||||
#include <string>
|
||||
#include "pgsql.h"
|
||||
#include "pgsql_wrapper.h"
|
||||
#include <curl/curl.h>
|
||||
#include "account.h"
|
||||
|
||||
#include "account_mngt.h"
|
||||
#include "contract.h"
|
||||
|
||||
long WrenchReturnTaskMessage(CVars in, CVars &out);
|
||||
|
||||
long mobile_calls(CVars in, CVars &out) {
|
||||
logfmt(logINFO, "mobile_calls()");
|
||||
out["result"] = "~~Backend Reached~~";
|
||||
long action = REQ_LONG(in, "action", 0, -1);
|
||||
switch (action) {
|
||||
case WRENCHBOARD_MOBILE_ACTIVEJOB:
|
||||
return WrenchReturnActiveJobsList(in, out);
|
||||
break;
|
||||
|
||||
case WRENCHBOARD_MOBILE_OFFERSLIST:
|
||||
return WrenchReturnJobOffersList(in, out);
|
||||
break;
|
||||
|
||||
case WRENCHBOARD_MOBILE_LOADPROFILE:
|
||||
return WrenchReturnUserProfile(in, out);
|
||||
break;
|
||||
|
||||
case WRENCHBOARD_MOBILE_ACCOUNT:
|
||||
return WrenchReturnUserAccount(in, out);
|
||||
break;
|
||||
|
||||
case WRENCHBOARD_MOBILE_MESSAGE:
|
||||
return WrenchReturnMemberMessages(in, out);
|
||||
break;
|
||||
case WRENCHBOARD_MOBILE_PAYMENTHX:
|
||||
return WrenchReturnMemberPaymentHx( in, out);
|
||||
break;
|
||||
|
||||
case WRENCHBOARD_MOBILE_TASKMESSAGE:
|
||||
return WrenchReturnTaskMessage( in, out);
|
||||
break;
|
||||
|
||||
case WRENCHBOARD_MOBILE_SENDTASKMESSAGE:
|
||||
return WrenchContractMessage( in, out);
|
||||
break;
|
||||
}
|
||||
logfmt(logINFO, "/mobile_calls()");
|
||||
return 0;
|
||||
}
|
||||
/*
|
||||
|
||||
#define WRENCHBOARD_MOBILE_OFFERSLIST 15010
|
||||
#define WRENCHBOARD_MOBILE_ACTIVEJOB 15020
|
||||
#define WRENCHBOARD_MOBILE_LOADPROFILE 15030
|
||||
#define WRENCHBOARD_MOBILE_ACCOUNT 15040
|
||||
|
||||
long WrenchReturnActiveJobsList(CVars in, CVars &out)
|
||||
long WrenchReturnJobOffersList(CVars in, CVars &out)
|
||||
|
||||
long WrenchReturnUserProfile(CVars in, CVars &out)
|
||||
long WrenchReturnUserAccount(CVars in, CVars &out)
|
||||
*/
|
||||
|
||||
/* This task message */
|
||||
long WrenchReturnTaskMessage(CVars in, CVars &out) {
|
||||
logfmt(logINFO, "WrenchReturnTaskMessage()");
|
||||
long ret = PHP_API_BAD_PARAM;
|
||||
char vname[30];
|
||||
|
||||
// msg_id | date1 | title | msg
|
||||
// -----------------------------
|
||||
|
||||
try {
|
||||
long member_id = REQ_LONG(in, "member_id", 1, -1);
|
||||
long limit = REQ_LONG(in, "limit", 1, -1);
|
||||
REQ_STRING(in, "sessionid", 2, 100, "(.*)");
|
||||
REQ_STRING(in, "contract", 2, 15, "(.*)");
|
||||
|
||||
out["total_record"] = "0";
|
||||
const PGresult *res;
|
||||
res = pgsql_query("SELECT jc.id AS msg_id,to_char(jc.created, 'YYYY-MM-DD HH24:MI') AS date1, "
|
||||
" ''||(CASE WHEN jc.msg_type='FILE' THEN 'FILE' ELSE '' END) ||''||m.firstname AS title,(CASE WHEN jc.msg_type='FILE' THEN ''||jc.message||'' ELSE jc.message END) AS msg "
|
||||
" FROM jobs_contract_message jc "
|
||||
" LEFT JOIN members m ON m.id=jc.member_id "
|
||||
" WHERE jc.contract='%s' "
|
||||
" ORDER by jc.id DESC LIMIT %lu ", in["contract"].c_str(),in["limit"].Long() );
|
||||
|
||||
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++) {
|
||||
map<const char*, const char*>f = pgsql_fetch_assoc(res, i);
|
||||
if (f.empty()) continue;
|
||||
CVars rec;
|
||||
map_to_cvars(f, rec);
|
||||
|
||||
snprintf(vname, sizeof (vname), "title_%05d", i);
|
||||
out[vname] = rec["title"];
|
||||
|
||||
snprintf(vname, sizeof (vname), "date_%05d", i);
|
||||
out[vname] = rec["date1"];
|
||||
|
||||
snprintf(vname, sizeof (vname), "msg_id_%05d", i);
|
||||
out[vname] = rec["msg_id"];
|
||||
|
||||
snprintf(vname, sizeof (vname), "msg_%05d", i);
|
||||
out[vname] = rec["msg"];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
} catch (bad_parameter) {
|
||||
logfmt(logINFO, "ERROR CALL long WrenchReturnTaskMessage(CVars in, CVars &out)");
|
||||
}
|
||||
logfmt(logINFO, "/WrenchReturnTaskMessage()");
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/* This account apps*/
|
||||
long WrenchReturnUserAccount(CVars in, CVars &out) {
|
||||
logfmt(logINFO, "WrenchReturnUserAccount()");
|
||||
char vname[30];
|
||||
long ret = PHP_API_BAD_PARAM;
|
||||
|
||||
try {
|
||||
long member_id = REQ_LONG(in, "member_id", 1, -1);
|
||||
out["total_record"] = "0";
|
||||
const PGresult *res;
|
||||
res = pgsql_query("SELECT * FROM members WHERE id = %lu", member_id );
|
||||
|
||||
if (res != NULL && pgsql_num_rows(res) > 0) {
|
||||
out["total_record"] = pgsql_num_rows(res);
|
||||
map<const char*, const char*>f = pgsql_fetch_assoc(res, 0);
|
||||
map_to_cvars(f, out);
|
||||
ret = PHP_API_OK;
|
||||
out["status"] = "OK";
|
||||
}
|
||||
} catch (bad_parameter) {
|
||||
logfmt(logINFO, "ERROR CALL long WrenchReturnUserAccount(CVars in, CVars &out)");
|
||||
}
|
||||
logfmt(logINFO, "/WrenchReturnUserAccount()");
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* This profile apps*/
|
||||
long WrenchReturnUserProfile(CVars in, CVars &out) {
|
||||
logfmt(logINFO, "WrenchReturnUserProfile()");
|
||||
long ret = PHP_API_BAD_PARAM;
|
||||
|
||||
try {
|
||||
long member_id = REQ_LONG(in, "member_id", 1, -1);
|
||||
out["total_record"] = "0";
|
||||
const PGresult *res;
|
||||
res = pgsql_query("SELECT * FROM members WHERE id = %lu", member_id );
|
||||
|
||||
if (res != NULL && pgsql_num_rows(res) > 0) {
|
||||
out["total_record"] = pgsql_num_rows(res);
|
||||
map<const char*, const char*>f = pgsql_fetch_assoc(res, 0);
|
||||
map_to_cvars(f, out);
|
||||
ret = PHP_API_OK;
|
||||
out["status"] = "OK";
|
||||
}
|
||||
|
||||
} catch (bad_parameter) {
|
||||
logfmt(logINFO, "ERROR CALL long WrenchReturnUserProfile(CVars in, CVars &out)");
|
||||
}
|
||||
logfmt(logINFO, "/WrenchReturnUserProfile()");
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* This return the list of jobs on the home page of the apps*/
|
||||
long WrenchReturnJobOffersList(CVars in, CVars &out) {
|
||||
logfmt(logINFO, "WrenchReturnJobOffersList()");
|
||||
char vname[30];
|
||||
long ret = PHP_API_BAD_PARAM;
|
||||
|
||||
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);
|
||||
|
||||
out["total_record"] = "0";
|
||||
|
||||
const PGresult *res;
|
||||
|
||||
|
||||
|
||||
res = pgsql_query("SELECT mj.id AS job_id, jo.id AS contract_id, jo.added::date,mj.title, jo.offer_code, "
|
||||
" mj.description AS description, jo.job_description,mj.price, mj.timeline_days "
|
||||
"FROM members_jobs_offer jo LEFT JOIN members_jobs mj ON mj.id = jo.job_id "
|
||||
"WHERE jo.expire > now() AND jo.status = 1 "
|
||||
"AND jo.client_id = %lu LIMIT %lu ", in["member_id"].Long(), in["limit"].Long());
|
||||
|
||||
|
||||
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++) {
|
||||
map<const char*, const char*>f = pgsql_fetch_assoc(res, i);
|
||||
if (f.empty()) continue;
|
||||
CVars rec;
|
||||
map_to_cvars(f, rec);
|
||||
|
||||
snprintf(vname, sizeof (vname), "title_%05d", i);
|
||||
out[vname] = rec["title"];
|
||||
|
||||
snprintf(vname, sizeof (vname), "project_%05d", i);
|
||||
out[vname] = rec["offer_code"];
|
||||
|
||||
snprintf(vname, sizeof (vname), "description_%05d", i);
|
||||
out[vname] = rec["description"];
|
||||
|
||||
snprintf(vname, sizeof (vname), "status_description_%05d", i);
|
||||
out[vname] = "Offer";
|
||||
|
||||
snprintf(vname, sizeof (vname), "delivery_date_%05d", i);
|
||||
out[vname] = rec["delivery_date"];
|
||||
|
||||
snprintf(vname, sizeof (vname), "status_description_%05d", i);
|
||||
out[vname] = rec["status_description"];
|
||||
|
||||
snprintf(vname, sizeof (vname), "timeline_days_%05d", i);
|
||||
out[vname] = rec["timeline_days"];
|
||||
|
||||
snprintf(vname, sizeof (vname), "contract_%05d", i);
|
||||
out[vname] = rec["offer_code"];
|
||||
|
||||
snprintf(vname, sizeof (vname), "job_description_%05d", i);
|
||||
out[vname] = rec["job_description"];
|
||||
|
||||
snprintf(vname, sizeof (vname), "price_%05d", i);
|
||||
out[vname] = rec["price"];
|
||||
|
||||
snprintf(vname, sizeof (vname), "job_id_%05d", i);
|
||||
out[vname] = rec["job_id"];
|
||||
|
||||
snprintf(vname, sizeof (vname), "contract_id_%05d", i);
|
||||
out[vname] = rec["contract_id"];
|
||||
}
|
||||
}
|
||||
ret = PHP_API_OK;
|
||||
out["status"] = "OK";
|
||||
} catch (bad_parameter) {
|
||||
logfmt(logINFO, "ERROR CALL long WrenchReturnJobOffersList(CVars in, CVars &out)");
|
||||
}
|
||||
logfmt(logINFO, "/WrenchReturnJobOffersList()");
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
/* This return the list of jobs on the home page of the apps*/
|
||||
long WrenchReturnActiveJobsList(CVars in, CVars &out) {
|
||||
return WrenchMemberActiveJobs(in, out);
|
||||
}
|
||||
Reference in New Issue
Block a user