added pagination

This commit is contained in:
Vishwa Gaurav
2024-09-08 19:31:49 +05:30
parent 0969726fed
commit d4660dc238
4 changed files with 10 additions and 4 deletions

View File

@@ -49,7 +49,8 @@ const queryOptions = {
remoteFilter: 'remote', remoteFilter: 'remote',
salary: '100000', salary: '100000',
experienceLevel: 'entry level', experienceLevel: 'entry level',
limit: '10' limit: '10',
page: "0",
}; };
linkedIn.query(queryOptions).then(response => { linkedIn.query(queryOptions).then(response => {
@@ -72,7 +73,7 @@ query() accepts a _queryOptions_ object and returns an array of _Job_ objects.
| experienceLevel | "" | _string_ - `internship`, `entry level`, `associate`, `senior`, `director`, `executive` | | experienceLevel | "" | _string_ - `internship`, `entry level`, `associate`, `senior`, `director`, `executive` |
| limit | "" | _string_ - Number of jobs returned: (i.e. '1', '10', '100', etc) | | limit | "" | _string_ - Number of jobs returned: (i.e. '1', '10', '100', etc) |
| sortBy | "" | _string_ - `recent`, `relevant` | | sortBy | "" | _string_ - `recent`, `relevant` |
| page | "0" | _string_ - `0`, `1`, `2` .... |
## Job Objects ## Job Objects
| Paramter | Description (Default: null) | | Paramter | Description (Default: null) |

View File

@@ -19,6 +19,7 @@ function Query(queryObj) {
this.experienceLevel = queryObj.experienceLevel || ""; this.experienceLevel = queryObj.experienceLevel || "";
this.sortBy = queryObj.sortBy || ""; this.sortBy = queryObj.sortBy || "";
this.limit = Number(queryObj.limit) || 0; this.limit = Number(queryObj.limit) || 0;
this.page = Number(queryObj.page) || 0;
} }
Query.prototype.getDateSincePosted = function () { Query.prototype.getDateSincePosted = function () {
@@ -74,6 +75,9 @@ Query.prototype.getSalary = function () {
return salaryRange[this.salary.toLowerCase()] ?? ""; return salaryRange[this.salary.toLowerCase()] ?? "";
}; };
Query.prototype.getPage = function () {
return this.page * 25;
};
Query.prototype.url = function (start) { Query.prototype.url = function (start) {
let query = `https://${this.host}/jobs-guest/jobs/api/seeMoreJobPostings/search?`; let query = `https://${this.host}/jobs-guest/jobs/api/seeMoreJobPostings/search?`;
if (this.keyword !== "") query += `keywords=${this.keyword}`; if (this.keyword !== "") query += `keywords=${this.keyword}`;
@@ -85,7 +89,7 @@ Query.prototype.url = function (start) {
query += `&f_E=${this.getExperienceLevel()}`; query += `&f_E=${this.getExperienceLevel()}`;
if (this.getRemoteFilter() !== "") query += `&f_WT=${this.getRemoteFilter()}`; if (this.getRemoteFilter() !== "") query += `&f_WT=${this.getRemoteFilter()}`;
if (this.getJobType() !== "") query += `&f_JT=${this.getJobType()}`; if (this.getJobType() !== "") query += `&f_JT=${this.getJobType()}`;
query += `&start=${start}`; if (this.getPage() !== "") query += `&start=${start + this.getPage()};`;
if (this.sortBy == "recent" || this.sortBy == "relevant") { if (this.sortBy == "recent" || this.sortBy == "relevant") {
let sortMethod = "R"; let sortMethod = "R";
if (this.sortBy == "recent") sortMethod = "DD"; if (this.sortBy == "recent") sortMethod = "DD";

View File

@@ -1,6 +1,6 @@
{ {
"name": "linkedin-jobs-api", "name": "linkedin-jobs-api",
"version": "1.0.4", "version": "1.0.5",
"description": "advanced node.js package for getting job listings from LinkedIn", "description": "advanced node.js package for getting job listings from LinkedIn",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {

View File

@@ -10,6 +10,7 @@ const queryOptions = {
experienceLevel: "entry level", experienceLevel: "entry level",
limit: "1", limit: "1",
sortBy: "recent", sortBy: "recent",
page: "1",
}; };
linkedIn.query(queryOptions).then((response) => { linkedIn.query(queryOptions).then((response) => {