shiqiyue-linkedin-private-api
Version:

81 lines • 3.39 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SearchRequest = void 0;
const utils_1 = require("../utils");
const json_bigint_1 = __importDefault(require("json-bigint"));
class SearchRequest {
constructor({ request }) {
this.request = request;
}
searchBlended({ skip = 0, limit = 10, filters = {}, keywords, origin = "TYPEAHEAD_ESCAPE_HATCH" }) {
const queryParams = {
filters,
count: limit,
...(keywords ? { keywords: encodeURIComponent(keywords) } : {}),
origin: origin,
q: 'all',
queryContext: {
spellCorrectionEnabled: true,
relatedSearchesEnabled: true,
kcardTypes: "PROFILE|COMPANY"
},
start: skip,
};
console.log(utils_1.paramsSerializer(queryParams));
return this.request.get('search/blended', {
params: queryParams,
});
}
searchCluster({ start = 0, query = {}, keywords = "" }) {
const q = {
flagshipSearchIntent: "SEARCH_SRP",
keywords: encodeURIComponent(keywords),
queryParameters: Object.assign({
resultType: ["PEOPLE"]
}, query),
includeFiltersInResponse: false
};
const queryStr = utils_1.querySerializer(q);
const u = `search/dash/clusters?decorationId=${this.request.decorationIds.SearchClusterCollection}&origin=SWITCH_SEARCH_VERTICAL&q=all&query=${queryStr}&start=${start}`;
console.log(u);
return this.request.get(u);
}
lazyLoadAction({ ids }) {
const nids = [];
for (const id of ids) {
nids.push(encodeURIComponent(id).replace(/\(/g, '%28').replace(/\)/g, '%29'));
}
const url = `voyagerSearchDashLazyLoadedActions?decorationId=${this.request.decorationIds.SearchLazyLoadedActions}&ids=List(${nids.join(',')})`;
console.log(url);
return this.request.get(url, { transformResponse: function (data, headers) {
return json_bigint_1.default().parse(data);
} });
}
searchGeo({ keywords }) {
keywords = encodeURIComponent(keywords);
return this.request.get(`voyagerSearchDashReusableTypeahead?decorationId=${this.request.decorationIds.ReusableTypeaheadCollection}&keywords=${keywords}&q=type&query=(typeaheadFilterQuery:(geoSearchTypes:List(MARKET_AREA,COUNTRY_REGION,ADMIN_DIVISION_1,CITY)))&type=GEO`);
}
searchJobs({ skip = 0, limit = 10, filters = {}, keywords, }) {
const queryParams = {
filters,
count: limit,
...(keywords ? { keywords: encodeURIComponent(keywords) } : {}),
origin: 'JOB_SEARCH_RESULTS_PAGE',
decorationId: this.request.decorationIds.WebJobSearchHitLite,
q: 'jserpFilters',
queryContext: {
primaryHitType: 'JOBS',
spellCorrectionEnabled: true,
},
start: skip,
};
return this.request.get('search/hits', {
params: queryParams,
});
}
}
exports.SearchRequest = SearchRequest;
//# sourceMappingURL=search.request.js.map