linkedin.js 4.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. "use strict";
  2. // Helper functions for accessing the linkedin API.
  3. var Parse = require('parse/node').Parse;
  4. const httpsRequest = require('./httpsRequest');
  5. // Returns a promise that fulfills iff this user id is valid.
  6. function validateAuthData(authData) {
  7. return request('me', authData.access_token, authData.is_mobile_sdk).then(data => {
  8. if (data && data.id == authData.id) {
  9. return;
  10. }
  11. throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'Linkedin auth is invalid for this user.');
  12. });
  13. }
  14. // Returns a promise that fulfills iff this app id is valid.
  15. function validateAppId() {
  16. return Promise.resolve();
  17. }
  18. // A promisey wrapper for api requests
  19. function request(path, access_token, is_mobile_sdk) {
  20. var headers = {
  21. Authorization: 'Bearer ' + access_token,
  22. 'x-li-format': 'json'
  23. };
  24. if (is_mobile_sdk) {
  25. headers['x-li-src'] = 'msdk';
  26. }
  27. return httpsRequest.get({
  28. host: 'api.linkedin.com',
  29. path: '/v2/' + path,
  30. headers: headers
  31. });
  32. }
  33. module.exports = {
  34. validateAppId: validateAppId,
  35. validateAuthData: validateAuthData
  36. };
  37. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYXJzZSIsInJlcXVpcmUiLCJodHRwc1JlcXVlc3QiLCJ2YWxpZGF0ZUF1dGhEYXRhIiwiYXV0aERhdGEiLCJyZXF1ZXN0IiwiYWNjZXNzX3Rva2VuIiwiaXNfbW9iaWxlX3NkayIsInRoZW4iLCJkYXRhIiwiaWQiLCJFcnJvciIsIk9CSkVDVF9OT1RfRk9VTkQiLCJ2YWxpZGF0ZUFwcElkIiwiUHJvbWlzZSIsInJlc29sdmUiLCJwYXRoIiwiaGVhZGVycyIsIkF1dGhvcml6YXRpb24iLCJnZXQiLCJob3N0IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9BdXRoL2xpbmtlZGluLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEhlbHBlciBmdW5jdGlvbnMgZm9yIGFjY2Vzc2luZyB0aGUgbGlua2VkaW4gQVBJLlxudmFyIFBhcnNlID0gcmVxdWlyZSgncGFyc2Uvbm9kZScpLlBhcnNlO1xuY29uc3QgaHR0cHNSZXF1ZXN0ID0gcmVxdWlyZSgnLi9odHRwc1JlcXVlc3QnKTtcblxuLy8gUmV0dXJucyBhIHByb21pc2UgdGhhdCBmdWxmaWxscyBpZmYgdGhpcyB1c2VyIGlkIGlzIHZhbGlkLlxuZnVuY3Rpb24gdmFsaWRhdGVBdXRoRGF0YShhdXRoRGF0YSkge1xuICByZXR1cm4gcmVxdWVzdCgnbWUnLCBhdXRoRGF0YS5hY2Nlc3NfdG9rZW4sIGF1dGhEYXRhLmlzX21vYmlsZV9zZGspLnRoZW4oZGF0YSA9PiB7XG4gICAgaWYgKGRhdGEgJiYgZGF0YS5pZCA9PSBhdXRoRGF0YS5pZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCwgJ0xpbmtlZGluIGF1dGggaXMgaW52YWxpZCBmb3IgdGhpcyB1c2VyLicpO1xuICB9KTtcbn1cblxuLy8gUmV0dXJucyBhIHByb21pc2UgdGhhdCBmdWxmaWxscyBpZmYgdGhpcyBhcHAgaWQgaXMgdmFsaWQuXG5mdW5jdGlvbiB2YWxpZGF0ZUFwcElkKCkge1xuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG59XG5cbi8vIEEgcHJvbWlzZXkgd3JhcHBlciBmb3IgYXBpIHJlcXVlc3RzXG5mdW5jdGlvbiByZXF1ZXN0KHBhdGgsIGFjY2Vzc190b2tlbiwgaXNfbW9iaWxlX3Nkaykge1xuICB2YXIgaGVhZGVycyA9IHtcbiAgICBBdXRob3JpemF0aW9uOiAnQmVhcmVyICcgKyBhY2Nlc3NfdG9rZW4sXG4gICAgJ3gtbGktZm9ybWF0JzogJ2pzb24nLFxuICB9O1xuXG4gIGlmIChpc19tb2JpbGVfc2RrKSB7XG4gICAgaGVhZGVyc1sneC1saS1zcmMnXSA9ICdtc2RrJztcbiAgfVxuICByZXR1cm4gaHR0cHNSZXF1ZXN0LmdldCh7XG4gICAgaG9zdDogJ2FwaS5saW5rZWRpbi5jb20nLFxuICAgIHBhdGg6ICcvdjIvJyArIHBhdGgsXG4gICAgaGVhZGVyczogaGVhZGVycyxcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICB2YWxpZGF0ZUFwcElkOiB2YWxpZGF0ZUFwcElkLFxuICB2YWxpZGF0ZUF1dGhEYXRhOiB2YWxpZGF0ZUF1dGhEYXRhLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBLElBQUlBLEtBQUssR0FBR0MsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDRCxLQUFLO0FBQ3ZDLE1BQU1FLFlBQVksR0FBR0QsT0FBTyxDQUFDLGdCQUFnQixDQUFDOztBQUU5QztBQUNBLFNBQVNFLGdCQUFnQkEsQ0FBQ0MsUUFBUSxFQUFFO0VBQ2xDLE9BQU9DLE9BQU8sQ0FBQyxJQUFJLEVBQUVELFFBQVEsQ0FBQ0UsWUFBWSxFQUFFRixRQUFRLENBQUNHLGFBQWEsQ0FBQyxDQUFDQyxJQUFJLENBQUNDLElBQUksSUFBSTtJQUMvRSxJQUFJQSxJQUFJLElBQUlBLElBQUksQ0FBQ0MsRUFBRSxJQUFJTixRQUFRLENBQUNNLEVBQUUsRUFBRTtNQUNsQztJQUNGO0lBQ0EsTUFBTSxJQUFJVixLQUFLLENBQUNXLEtBQUssQ0FBQ1gsS0FBSyxDQUFDVyxLQUFLLENBQUNDLGdCQUFnQixFQUFFLHlDQUF5QyxDQUFDO0VBQ2hHLENBQUMsQ0FBQztBQUNKOztBQUVBO0FBQ0EsU0FBU0MsYUFBYUEsQ0FBQSxFQUFHO0VBQ3ZCLE9BQU9DLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLENBQUM7QUFDMUI7O0FBRUE7QUFDQSxTQUFTVixPQUFPQSxDQUFDVyxJQUFJLEVBQUVWLFlBQVksRUFBRUMsYUFBYSxFQUFFO0VBQ2xELElBQUlVLE9BQU8sR0FBRztJQUNaQyxhQUFhLEVBQUUsU0FBUyxHQUFHWixZQUFZO0lBQ3ZDLGFBQWEsRUFBRTtFQUNqQixDQUFDO0VBRUQsSUFBSUMsYUFBYSxFQUFFO0lBQ2pCVSxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsTUFBTTtFQUM5QjtFQUNBLE9BQU9mLFlBQVksQ0FBQ2lCLEdBQUcsQ0FBQztJQUN0QkMsSUFBSSxFQUFFLGtCQUFrQjtJQUN4QkosSUFBSSxFQUFFLE1BQU0sR0FBR0EsSUFBSTtJQUNuQkMsT0FBTyxFQUFFQTtFQUNYLENBQUMsQ0FBQztBQUNKO0FBRUFJLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHO0VBQ2ZULGFBQWEsRUFBRUEsYUFBYTtFQUM1QlYsZ0JBQWdCLEVBQUVBO0FBQ3BCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=