Job manage

This commit is contained in:
CHIEFSOFT\ameye
2023-05-11 08:54:16 -04:00
parent bdd44f9bb1
commit e21fe33fc2
4 changed files with 59 additions and 16 deletions
+50 -16
View File
@@ -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;
}
+1
View File
@@ -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');
+4
View File
@@ -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;
+4
View File
@@ -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;