From afa2f030a51598873e4ea52767cccbc59b46ecfa Mon Sep 17 00:00:00 2001 From: "CHIEFSOFT\\ameye" Date: Sat, 6 May 2023 17:02:12 -0400 Subject: [PATCH] manager offers --- wrenchboard/src/include/jobs_manager.h | 1 + wrenchboard/src/shared_tool/jobs.cc | 2 +- wrenchboard/src/shared_tool/jobs_manager.cc | 92 +++++++++++++++++++++ www-api/app/Models/ResultFormatter.php | 1 + www-api/public/svs/user/formarter.php | 1 + 5 files changed, 96 insertions(+), 1 deletion(-) diff --git a/wrenchboard/src/include/jobs_manager.h b/wrenchboard/src/include/jobs_manager.h index 27ade069..ea3015a1 100644 --- a/wrenchboard/src/include/jobs_manager.h +++ b/wrenchboard/src/include/jobs_manager.h @@ -3,6 +3,7 @@ #include "vars.h" +long WrenchJobManagerOffers( CVars in, CVars &out); long WrenchJobManagerList( CVars in, CVars &out ); #endif \ No newline at end of file diff --git a/wrenchboard/src/shared_tool/jobs.cc b/wrenchboard/src/shared_tool/jobs.cc index e235c681..ecf5f176 100644 --- a/wrenchboard/src/shared_tool/jobs.cc +++ b/wrenchboard/src/shared_tool/jobs.cc @@ -32,7 +32,7 @@ long jobs_calls(CVars in, CVars &out) { return WrenchJobManagerList(in, out); break; case WRENCHBOARD_JOB_OFFERS: - + return WrenchJobManagerOffers(in, out); break; case WRENCHBOARD_JOB_CREATEJOB: return WrenchCreateJobs(in, out); diff --git a/wrenchboard/src/shared_tool/jobs_manager.cc b/wrenchboard/src/shared_tool/jobs_manager.cc index 02a86f06..bc62a3cc 100644 --- a/wrenchboard/src/shared_tool/jobs_manager.cc +++ b/wrenchboard/src/shared_tool/jobs_manager.cc @@ -17,6 +17,98 @@ #include "jobs_manager.h" +long WrenchJobManagerOffers( CVars in, CVars &out){ + logfmt(logINFO, "ENTER CALL long WrenchJobManagerOffers"); + char vname[30]; + long ret = PHP_API_BAD_PARAM; + const char * loc = getenv("REMOTE_ADDR"); + const PGresult *res; + + 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); + + out["total_record"] = "0"; + res = pgsql_query("SELECT id FROM members_jobs WHERE member_id = %lu AND status=1 ORDER BY id DESC", in["member_id"].Long()); + out["total_record"] = pgsql_num_rows(res); + + res = pgsql_query("SELECT id AS job_id, * FROM members_jobs WHERE member_id = %lu AND status=1 " + "ORDER BY id DESC LIMIT %lu OFFSET %lu", in["member_id"].Long(), 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), "job_id_%05d", i); + out[vname] = rec["job_id"]; + + 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_detail_%05d", i); + out[vname] = rec["job_detail"]; + + snprintf(vname, sizeof (vname), "timeline_days_%05d", i); + out[vname] = rec["timeline_days"]; + + snprintf(vname, sizeof (vname), "price_%05d", i); + out[vname] = rec["price"]; + + snprintf(vname, sizeof (vname), "country_%05d", i); + out[vname] = rec["country"]; + + snprintf(vname, sizeof (vname), "job_uid_%05d", i); + out[vname] = rec["uid"]; + } + } + ret = PHP_API_OK; + out["status"] = "OK"; + /* + wrenchboard=> \d members_jobs + Table "public.members_jobs" + Column | Type | Collation | Nullable | Default + ---------------+-----------------------------+-----------+----------+------------------------------------------ + id | integer | | not null | nextval('members_jobs_id_seq'::regclass) + member_id | integer | | | + title | character varying(150) | | | + description | character varying(300) | | | + job_detail | text | | | + timeline_days | integer | | not null | + price | integer | | not null | + loc | inet | | | + created | timestamp without time zone | | | now() + updated | timestamp without time zone | | | now() + status | integer | | | 1 + country | character varying(2) | | | + uid | uuid | | | uuid_generate_v4() + Indexes: + "members_jobs_id_key" UNIQUE CONSTRAINT, btree (id) + Foreign-key constraints: + "members_jobs_country_fkey" FOREIGN KEY (country) REFERENCES country(code) + "members_jobs_member_id_fkey" FOREIGN KEY (member_id) REFERENCES members(id) + Referenced by: + TABLE "members_jobs_offer" CONSTRAINT "members_jobs_offer_job_id_fkey" FOREIGN KEY (job_id) REFERENCES members_jobs(id) + + wrenchboard=> + + */ + + } catch (bad_parameter) { + logfmt(logINFO, "ERROR CALL long WrenchJobManagerOffers"); + } +return 0; +} + + long WrenchJobManagerList( CVars in, CVars &out){ logfmt(logINFO, "ENTER CALL long WrenchJobManagerList"); char vname[30]; diff --git a/www-api/app/Models/ResultFormatter.php b/www-api/app/Models/ResultFormatter.php index e12e48a0..7c6b6137 100644 --- a/www-api/app/Models/ResultFormatter.php +++ b/www-api/app/Models/ResultFormatter.php @@ -195,6 +195,7 @@ class ResultFormatter extends Model case WRENCHBOARD_MOBILE_ACTIVEJOB: case WRENCHBOARD_MOBILE_OFFERSLIST: case WRENCHBOARD_JOB_LISTJOBS: + case WRENCHBOARD_JOB_OFFERS: $total = $out["total_record"]; $res = array( diff --git a/www-api/public/svs/user/formarter.php b/www-api/public/svs/user/formarter.php index c2ef4417..059506e7 100755 --- a/www-api/public/svs/user/formarter.php +++ b/www-api/public/svs/user/formarter.php @@ -188,6 +188,7 @@ function processOutJson($in, $out) { case WRENCHBOARD_MOBILE_ACTIVEJOB: case WRENCHBOARD_MOBILE_OFFERSLIST: case WRENCHBOARD_JOB_LISTJOBS: + case WRENCHBOARD_JOB_OFFERS: $total = $out["total_record"]; $res = array(