UNPKG

linkedin-private-api

Version:

![Build](https://github.com/eilonmore/linkedin-private-api/workflows/Build/badge.svg?branch=master)

47 lines 2.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProfileRepository = exports.getProfilesFromResponse = void 0; const lodash_1 = require("lodash"); const linkedin_company_entity_1 = require("../entities/linkedin-company.entity"); const linkedin_mini_profile_entity_1 = require("../entities/linkedin-mini-profile.entity"); const linkedin_profile_entity_1 = require("../entities/linkedin-profile.entity"); const getProfilePictureUrls = (picture) => lodash_1.map(picture === null || picture === void 0 ? void 0 : picture.artifacts, artifact => `${picture === null || picture === void 0 ? void 0 : picture.rootUrl}${artifact.fileIdentifyingUrlPathSegment}`); const transformMiniProfile = (miniProfile) => ({ ...miniProfile, pictureUrls: getProfilePictureUrls(miniProfile.picture), profileId: (miniProfile.entityUrn || '').replace('urn:li:fs_miniProfile:', ''), }); const getProfilesFromResponse = (response) => { const miniProfiles = lodash_1.filter(response.included, p => p.$type === linkedin_mini_profile_entity_1.MINI_PROFILE_TYPE); const transformedMiniProfiles = miniProfiles.map((miniProfile) => transformMiniProfile(miniProfile)); return lodash_1.keyBy(transformedMiniProfiles, 'profileId'); }; exports.getProfilesFromResponse = getProfilesFromResponse; class ProfileRepository { constructor({ client }) { this.client = client; } async getProfile({ publicIdentifier }) { const response = await this.client.request.profile.getProfile({ publicIdentifier }); const results = response.included || []; const profile = results.find(r => r.$type === linkedin_profile_entity_1.PROFILE_TYPE && r.publicIdentifier === publicIdentifier); const company = results.find(r => r.$type === linkedin_company_entity_1.COMPANY_TYPE && profile.headline.includes(r.name)); const pictureUrls = getProfilePictureUrls(lodash_1.get(profile, 'profilePicture.displayImageReference.vectorImage', {})); return { ...profile, company, pictureUrls, }; } async getOwnProfile() { var _a; const response = await this.client.request.profile.getOwnProfile(); const miniProfile = (_a = response === null || response === void 0 ? void 0 : response.included) === null || _a === void 0 ? void 0 : _a.find(r => r.$type === linkedin_mini_profile_entity_1.MINI_PROFILE_TYPE); if (!miniProfile) { return null; } return this.getProfile(miniProfile); } } exports.ProfileRepository = ProfileRepository; //# sourceMappingURL=profile.repository.js.map