Add linkedIn link, field of study support to LinkedIn import

This commit is contained in:
Michael Schmatz 2014-06-08 18:15:16 -07:00
parent bb5d23e6ba
commit f29a41f108
3 changed files with 26 additions and 6 deletions

View file

@ -25,7 +25,7 @@ module.exports = LinkedInHandler = class LinkedInHandler extends CocoClass
getProfileData: (cb) => getProfileData: (cb) =>
IN.API.Profile("me") IN.API.Profile("me")
.fields(["formatted-name","educations","skills","headline","summary","positions"]) .fields(["formatted-name","educations","skills","headline","summary","positions","public-profile-url"])
.error(cb) .error(cb)
.result (profiles) => .result (profiles) =>
cb null, profiles.values[0] cb null, profiles.values[0]

View file

@ -19,7 +19,7 @@ block content
button.btn#toggle-editing button.btn#toggle-editing
i.icon-cog i.icon-cog
span(data-i18n="account_profile.edit_profile") Edit Profile span(data-i18n="account_profile.edit_profile") Edit Profile
if linkedInAuthorized if linkedInAuthorized && editing
button.btn.btn-success#importLinkedIn button.btn.btn-success#importLinkedIn
i.icon-arrow-down i.icon-arrow-down
span Import LinkedIn span Import LinkedIn

View file

@ -79,6 +79,7 @@ module.exports = class ProfileView extends View
processLinkedInProfileData: (p, cb) -> processLinkedInProfileData: (p, cb) ->
#handle formatted-name #handle formatted-name
currentJobProfile = @user.get('jobProfile') currentJobProfile = @user.get('jobProfile')
oldJobProfile = _.cloneDeep(currentJobProfile)
jobProfileSchema = @user.schema().properties.jobProfile.properties jobProfileSchema = @user.schema().properties.jobProfile.properties
if p["formattedName"]? and p["formattedName"] isnt "private" if p["formattedName"]? and p["formattedName"] isnt "private"
@ -131,7 +132,7 @@ module.exports = class ProfileView extends View
for education in p["educations"]["values"] for education in p["educations"]["values"]
educationObject = {} educationObject = {}
educationObject.degree = education.degree ? "Studied" educationObject.degree = education.degree ? "Studied"
educationObject.degree = educationObject.degree.slice(0,eduSchema.degree.maxLength)
if education.startDate?.year? if education.startDate?.year?
educationObject.duration = "#{education.startDate.year} - " educationObject.duration = "#{education.startDate.year} - "
if (not education.endDate?.year) or (education.endDate?.year and education.endDate?.year > (new Date().getFullYear())) if (not education.endDate?.year) or (education.endDate?.year and education.endDate?.year > (new Date().getFullYear()))
@ -142,18 +143,37 @@ module.exports = class ProfileView extends View
educationObject.duration += education.endDate.year educationObject.duration += education.endDate.year
else else
educationObject.duration = "" educationObject.duration = ""
if education.fieldOfStudy
if educationObject.degree is "Studied" or educationObject.degree is "Studying"
educationObject.degree += " #{education.fieldOfStudy}"
else
educationObject.degree += " in #{education.fieldOfStudy}"
educationObject.degree = educationObject.degree.slice(0,eduSchema.degree.maxLength)
educationObject.duration = educationObject.duration.slice(0,eduSchema.duration.maxLength) educationObject.duration = educationObject.duration.slice(0,eduSchema.duration.maxLength)
educationObject.school = education.schoolName ? "" educationObject.school = education.schoolName ? ""
educationObject.school = educationObject.school.slice(0,eduSchema.school.maxLength) educationObject.school = educationObject.school.slice(0,eduSchema.school.maxLength)
educationObject.description = "" educationObject.description = ""
newEducation.push educationObject newEducation.push educationObject
currentJobProfile.education = newEducation currentJobProfile.education = newEducation
if p["publicProfileUrl"]
#search for linkedin link
links = currentJobProfile.links
alreadyHasLinkedIn = false
for link in links
if link.link.toLowerCase().indexOf("linkedin") > -1
alreadyHasLinkedIn = true
break
unless alreadyHasLinkedIn
newLink =
link: p["publicProfileUrl"]
name: "LinkedIn"
currentJobProfile.links.push newLink
@user.set('jobProfile',currentJobProfile)
validationErrors = @user.validate() validationErrors = @user.validate()
if validationErrors if validationErrors
return alert("Please notify team@codecombat.com! There were validation errors from the import: #{JSON.stringify validationErrors}") @user.set('jobProfile',oldJobProfile)
return alert("Please notify team@codecombat.com! There were validation errors from the LinkedIn import: #{JSON.stringify validationErrors}")
else else
@user.set('jobProfile',currentJobProfile)
@user.save()
@render() @render()
getRenderData: -> getRenderData: ->