-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathservices.js
More file actions
69 lines (60 loc) · 2.43 KB
/
services.js
File metadata and controls
69 lines (60 loc) · 2.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
var model = require('./model');
var conf = require('./conf');
var OAuth = require('oauth').OAuth;
var User = model.User;
var findService = function(user, serviceName) {
for(var i = 0; i < user.services.length; i++) {
if(user.services[i].type == serviceName) {
return user.services[i];
}
}
};
var linkedinOAuth = new OAuth(
'https://api.linkedin.com/uas/oauth/requestToken',
'https://api.linkedin.com/uas/oauth/accessToken',
conf.linkedin.key,
conf.linkedin.secret,
'1.0',
null,
'HMAC-SHA1',
null,
{
Accept: '/',
Connection: 'close',
'User-Agent': 'SGCarrera extractor',
'x-li-format': 'json'
});
configure = function(app) {
app.get('/interact/self', function(req, res) {
res.contentType('application/json');
if(req.loggedIn) {
User.findById(req.session.auth.userId, function(err,user) {
if(!err) {
res.send(user);
} else {
res.send({access:'Not allowed'});
}
});
} else {
res.send({access:'Not allowed'});
}
});
app.get('/interact/importLinkedin', function(req, res) {
res.contentType('application/json');
if(req.session.linkedin) {
var accessToken = req.session.linkedin.accessToken,
accessTokenSecret = req.session.linkedin.accessTokenSecret;
linkedinOAuth.get('http://api.linkedin.com/v1/people/~:(id,first-name,last-name,headline,location:(name,country:(code)),industry,num-connections,num-connections-capped,summary,specialties,proposal-comments,associations,honors,interests,positions,publications,patents,languages,skills,certifications,educations,three-current-positions,three-past-positions,num-recommenders,recommendations-received,phone-numbers,im-accounts,twitter-accounts,date-of-birth,main-address,member-url-resources,picture-url,site-standard-profile-request:(url),api-standard-profile-request:(url,headers),public-profile-url)', accessToken, accessTokenSecret,
function(err, data, response) {
if(!err) {
res.send(data);
} else {
res.send(err);
}
});
} else {
res.send({access:'Not allowed'});
}
});
};
exports.configure = configure;