diff --git a/wrenchboard/src/shared_tool/jobs.cc b/wrenchboard/src/shared_tool/jobs.cc index e1f90613..a7eee02e 100644 --- a/wrenchboard/src/shared_tool/jobs.cc +++ b/wrenchboard/src/shared_tool/jobs.cc @@ -1126,16 +1126,16 @@ long WrenchDeleteJobs(CVars in, CVars &out) { long ret = PHP_API_BAD_PARAM; long member_id = REQ_LONG(in, "member_id", 1, -1); long job_id = REQ_LONG(in, "job_id", 1, -1); + REQ_STRING(in, "job_uid", 15, 149, "(.*)"); - const PGresult *res = pgsql_query("SELECT *,id AS job_id FROM members_jobs WHERE id = %lu AND member_id = %lu ", job_id, member_id); + const PGresult *res = pgsql_query("SELECT *,id AS job_id FROM members_jobs WHERE id = %lu AND member_id = %lu AND uid='%s'", job_id, member_id,in["job_uid"].c_str()); if (res != NULL && pgsql_num_rows(res) > 0) { - pgsql_exec("UPDATE members_jobs SET status = 0 WHERE status = 1 AND id = %lu AND member_id = %lu ", job_id, member_id); + pgsql_exec("UPDATE members_jobs SET status = 0 WHERE status = 1 AND id = %lu AND member_id = %lu AND uid='%s'", job_id, member_id,in["job_uid"].c_str()); ret = PHP_CREATED_OK; out["status"] = "Job/Task Deleted"; } else { out["status"] = "Valid Job/Task Not Found"; } - return ret; } @@ -1148,6 +1148,7 @@ long WrenchCreateJobs(CVars in, CVars &out) { REQ_LONG(in, "price", 1, -1); REQ_LONG(in, "timeline_days", 1, -1); REQ_STRING(in, "title", 5, 149, "(.*)"); + REQ_STRING(in, "country", 2, 3, "(.*)"); REQ_STRING(in, "description", 5, 299, "(.*)"); REQ_STRING (in, "job_detail", 4, 1440, "(.*)"); const char * loc = getenv("REMOTE_ADDR"); @@ -1195,25 +1196,58 @@ long WrenchCreateJobs(CVars in, CVars &out) { } long WrenchEditJobs(CVars in, CVars &out) { - long ret = PHP_API_BAD_PARAM; logfmt(logINFO, "WrenchEditJobs()"); - REQ_STRING(in, "username", 5, 49, "(.*)"); - REQ_STRING(in, "password", 5, 49, "(.*)"); - REQ_STRING(in, "sessionid", 4, 40, "(.*)"); - OPTIONAL(in, "loc") REQ_STRING(in, "loc", 3, 15, "(.*)"); - const char * loc = getenv("REMOTE_ADDR"); - in["loc"] = loc; - in["loc"].set_valid(true); + long ret = PHP_API_BAD_PARAM; + ULONG job_id = 0; - ret = load_db_record(out, "SELECT *,id AS member_id FROM members WHERE status=1 AND LOWER(username)=LOWER('%s') AND password= md5('%s')", in["username"].c_str(), in["password"].c_str()); - if (ret) { + long member_id = REQ_LONG(in, "member_id", 1, -1); + long job_id = REQ_LONG(in, "job_id", 1, -1); + REQ_STRING(in, "job_uid", 15, 149, "(.*)"); + REQ_LONG(in, "timeline_days", 1, -1); + REQ_STRING(in, "title", 5, 149, "(.*)"); + REQ_STRING(in, "description", 5, 299, "(.*)"); + REQ_STRING (in, "job_detail", 4, 1440, "(.*)"); + const char * loc = getenv("REMOTE_ADDR"); + in["loc"] = loc; + in["loc"].set_valid(true); - } else { - out["status"] = "Invalid username and/or password"; - } + if (in["price"].Long()<=0){ + out["status"] = "Unable to update job, price cannot be zero"; + return ret; + } + + const PGresult *res = pgsql_query("SELECT *,id AS job_id FROM members_jobs WHERE id = %lu AND member_id = %lu AND uid='%s'", job_id, member_id,in["job_uid"].c_str()); + if (res != NULL && pgsql_num_rows(res) > 0) { + // good to continue + } else { + out["status"] = "Valid Job/Task Not Found"; + } + CVars x; + x["title"] = in["title"]; + x["title"].set_valid(true); + x["price"] = in["price"]; + x["price"].set_valid(true); + x["timeline_days"] = in["timeline_days"]; + x["timeline_days"].set_valid(true); + x["description"] = in["description"]; + x["description"].set_valid(true); + x["loc"] = in["loc"]; + x["loc"].set_valid(true); + x["job_detail"] = in["job_detail"]; + x["job_detail"].set_valid(true); + job_id = insert_db_record(DBS_VALID, "members_jobs", "members_jobs_id_seq", x); + + if (job_id) { + if ( update_db_record(DBS_VALID, "members_jobs", x, job_id) ){ + load_db_record(out, "SELECT *,id AS job_id FROM members_jobs WHERE id = %lu ", job_id); + ret = PHP_CREATED_OK; + } + } else { + out["status"] = "Unable to create job"; + } logfmt(logINFO, "/WrenchEditJobs()"); return ret; } diff --git a/www-api/app/Config/Routes.php b/www-api/app/Config/Routes.php index 64573175..e7364f1c 100644 --- a/www-api/app/Config/Routes.php +++ b/www-api/app/Config/Routes.php @@ -78,6 +78,7 @@ $routes->post('/en/wrench/api/v1/jobmanagerlist', 'WrenchApi::apigate') $routes->post('/en/wrench/api/v1/jobmanageroffers', 'WrenchApi::apigate'); $routes->post('/en/wrench/api/v1/jobmanagercreatejob', 'WrenchApi::apigate'); $routes->post('/en/wrench/api/v1/jobmanagerupdatejob', 'WrenchApi::apigate'); +$routes->post('/en/wrench/api/v1/jobmanagerdeletejob', 'WrenchApi::apigate'); $routes->post('/en/wrench/api/v1/familylist', 'WrenchApi::apigate'); diff --git a/www-api/app/Controllers/WrenchApi.php b/www-api/app/Controllers/WrenchApi.php index a7721fcb..2fad6c11 100644 --- a/www-api/app/Controllers/WrenchApi.php +++ b/www-api/app/Controllers/WrenchApi.php @@ -84,6 +84,7 @@ class WrenchApi extends BaseController 'jobmanageroffers'=> ['POST'], 'jobmanagercreatejob'=> ['POST'], 'jobmanagerupdatejob'=> ['POST'], + 'jobmanagerdeletejob'=> ['POST'], 'profilepasschange' => ['POST'], 'starttopup' => ['POST'], 'familylist' => ['POST'], @@ -119,6 +120,9 @@ class WrenchApi extends BaseController $in["action"] = WRENCHBOARD_JOB_CREATEJOB; $in["job_mode"] = UPDATE_JOB; break; + case 'jobmanagerdeletejob': + $in["action"] = WRENCHBOARD_JOB_DELETEJOB; + break; case 'jobmanageroffers': $in["action"] = WRENCHBOARD_JOB_OFFERS; break; diff --git a/www-api/public/svs/user/userve.php b/www-api/public/svs/user/userve.php index f6cc02c2..6a9a7db8 100755 --- a/www-api/public/svs/user/userve.php +++ b/www-api/public/svs/user/userve.php @@ -63,6 +63,7 @@ $endpoints = array( 'jobmanageroffers'=> array('POST'), 'jobmanagercreatejob'=> array('POST'), 'jobmanagerupdatejob'=> array('POST'), + 'jobmanagerdeletejob'=> array('POST'), 'profilepasschange' => array('POST'), 'starttopup' => array('POST'), 'familylist' => array('POST'), @@ -154,6 +155,9 @@ switch ($endpoint) { $in["action"] = WRENCHBOARD_JOB_CREATEJOB; $in["job_mode"] = UPDATE_JOB; break; + case 'jobmanagerdeletejob': + $in["action"] = WRENCHBOARD_JOB_DELETEJOB; + break; case 'jobmanageroffers': $in["action"] = WRENCHBOARD_JOB_OFFERS; break;