Ejemplo n.º 1
0
        }, function (err, resp, body) {

            if (err) {
                log.error(err);
                res.render('auto-close.ejs', {});
            }
            else {
                //sample :  { _total: 1,
                // values: [ 'https://media.licdn.com/mpr/mprx/0_Pj_hSt2ROJbAFXE6Puuaa1KRJdvl5vE6tWjSwPGBApq-CN4erDG2dz86ZE2' ] }

                log.debug('linkedin body:', body);
                if (Array.isArray(body.values) && user.accounts.linkedin) {
                    user.accounts.linkedin.picture = body.values[0];
                    user.save(function (err) {
                        if (err) {
                            log.error(err);
                        }
                        res.render('auto-close.ejs', {});
                    });
                }
                else {
                    res.render('auto-close.ejs', {});
                }

            }

        });
Ejemplo n.º 2
0
 return function (result) { // Result comes back from Cloudinary as saved image object
     if (result.error) {
         cb(result.error);
     }
     else {
         log.debug({'Back from Cloudinary:': result});
         cb(null, result);
     }
 };
Ejemplo n.º 3
0
 return function (result) { // Result comes back from Cloudinary as saved image object
     if (result.error) {
         cb(result.error);
     }
     else if (result) {
         log.debug('Back from Cloudinary: ', result.publicId, result.url);
         cb(null, result);
     }
     else {
         cb(new Error('No result from Cloudinary'));
     }
 };
Ejemplo n.º 4
0
    Linkedin.auth.getAccessToken(res, req.query.code, req.query.state, function (err, results) {
        if (err)
            return console.error(err);

        /**
         * Results have something like:
         * {"expires_in":5184000,"access_token":". . . ."}
         */

        log.debug(results);
        return res.redirect('/');
    });
Ejemplo n.º 5
0
    postToTwitter: function (user, post, cb) {
        logger.debug('POST TO TWITTER POST:', post);

        if (!(user.twitter && user.twitter.token)) {
            cb(new Error('Not authenticated with Twitter.'));
        }
        else {
            makeTwit(user.twitter).post('statuses/update', {status: [post.string, post.link].join(' ')}, function (err, data) {
                if (err) {
                    return cb(err);
                }
                cb(null, data);
            });
        }
    },
Ejemplo n.º 6
0
    }], function complete(err, results) {

        var error = (err instanceof Error) ? err.stack : err;

        var posts = null;
        var remainingPosts = null;
        var twitterFollowers = null;

        if (!error) {

            twitterFollowers = results[0] || [];

            var postData = results[1] || {};
            posts = postData.posts;
            remainingPosts = postData.remainingPosts;

        }

        var timeRequired = (Date.now() - req.requestStart) + 'ms';

        log.debug('!!!!!!!!!!!!******isFollowing value:*******!!!!!!!!!!!', temp.isFollowing);

        res.render('profile.ejs', {
            data: JSON.stringify({
                timeRequired: timeRequired,
                error: error || null,
                user: helpers.user.simplifyUser(req.user),
                twitterFollowers: twitterFollowers || [],
                posts: posts || [],
                remainingPosts: remainingPosts || [],
                kind: temp.kind,
                _id: temp._id,
                handle: handle,
                name: temp.name,
                picture: temp.picture,
                isFollowing: temp.isFollowing,
                counts: temp.counts,
                NODE_ENV: process.env.NODE_ENV,
                config: config.get('lectal_front_end_env')
            })
        });
    });
Ejemplo n.º 7
0
    Model.update(conditions, updateData, opts, function (err, result) {

        if (err) {
            next(err);
        }
        else if (result) {
            if (callNext) {
                req.lectalTemp = {
                    data: result,
                    status: 200
                };
                next();
            }
            else {
                log.debug('calling next is false, so here is DB response data:', result);
            }
        }
        else {
            next(new Error('grave error in Model.update method'));
        }
    });
Ejemplo n.º 8
0
router.get('/', helpers.handle.filterHandles, /*helpers.handle.isHashtagOrUsername,*/ function (req, res, next) {
    log.debug('Handle request:', req);

    var count = 450; //note: default to 450 but also handle the fact that 0 is falsy
    var userId = req.user ? req.user._id : null;
    var handle = req.params.handle;


    // Look 

    var temp = req.lectalTemp;
    var conditions = {};

    var exit = false;

    switch (temp.kind) {
        case 'user':
            conditions['post-conditions'] = {
                $and: [
                    {
                        dateCreated: {
                            $lt: new Date()
                        }
                    },
                    {
                        posterId: temp._id
                    }
                ]
            };
            break;
        case 'topic':
            conditions['post-conditions'] = {
                $and: [
                    {
                        dateCreated: {
                            $lt: new Date()
                        }
                    },
                    {
                        $and: [
                            {
                                'content.kind': 'topic'
                            },
                            {
                                'content.topicId': temp._id
                            }
                        ]
                    }
                ]
            };
            break;
        default:
            exit = true; //no conditions? can't play the game
    }

    if (exit) {
        return next(new Error('no handle case matched'));
    }

    async.parallel([function (cb) {

        if (req.user && String(req.user.username).toUpperCase() !== String(handle).toUpperCase()) {
            cb(null);
        }
        else {
            helpers.twitter.getTwitterFollowers({
                count: count,
                token: req.lectalAccessToken
            }, cb);
        }

    }, function (cb) {

        helpers.posts.getInitialPosts({
            conditions: conditions,
            token: req.lectalAccessToken
        }, cb);

    }], function complete(err, results) {

        var error = (err instanceof Error) ? err.stack : err;

        var posts = null;
        var remainingPosts = null;
        var twitterFollowers = null;

        if (!error) {

            twitterFollowers = results[0] || [];

            var postData = results[1] || {};
            posts = postData.posts;
            remainingPosts = postData.remainingPosts;

        }

        var timeRequired = (Date.now() - req.requestStart) + 'ms';

        log.debug('!!!!!!!!!!!!******isFollowing value:*******!!!!!!!!!!!', temp.isFollowing);

        res.render('profile.ejs', {
            data: JSON.stringify({
                timeRequired: timeRequired,
                error: error || null,
                user: helpers.user.simplifyUser(req.user),
                twitterFollowers: twitterFollowers || [],
                posts: posts || [],
                remainingPosts: remainingPosts || [],
                kind: temp.kind,
                _id: temp._id,
                handle: handle,
                name: temp.name,
                picture: temp.picture,
                isFollowing: temp.isFollowing,
                counts: temp.counts,
                NODE_ENV: process.env.NODE_ENV,
                config: config.get('lectal_front_end_env')
            })
        });
    });
});
Ejemplo n.º 9
0
    }), function (req, res, next) {
        // Successful authentication, redirect home.
        //Linkedin.auth.getAccessToken(res, req.query.code, req.query.state, function (err, results) {
        //
        //    if (err) {
        //        log.error('linkedin err', err);
        //        res.render('auto-close-error.ejs', {});
        //    }
        //    else {
        //        /**
        //         * Results have something like:
        //         * {"expires_in":5184000,"access_token":". . . ."}
        //         */
        //
        //        log.error('linkedin success', results);
        //
        //        req.user.linkedin.access_token = results.access_token;
        //
        //        res.render('auto-close.ejs', {});
        //        //return res.redirect('/profile');
        //    }
        //});

        log.debug('LINKEDIN_CONFIG.clientId', LINKEDIN_CONFIG.clientId);
        log.debug('auth code', req.query.code);

        var user = req.user;

        request.get({
            url: 'https://api.linkedin.com/v1/people/' + user.accounts.linkedin.id + '/picture-urls::(original)',
            json: true,
            headers: {
                Authorization: 'Bearer ' + user.accounts.linkedin.token
            },
            qs: {
                format: 'json'
            }
        }, function (err, resp, body) {

            if (err) {
                log.error(err);
                res.render('auto-close.ejs', {});
            }
            else {
                //sample :  { _total: 1,
                // values: [ 'https://media.licdn.com/mpr/mprx/0_Pj_hSt2ROJbAFXE6Puuaa1KRJdvl5vE6tWjSwPGBApq-CN4erDG2dz86ZE2' ] }

                log.debug('linkedin body:', body);
                if (Array.isArray(body.values) && user.accounts.linkedin) {
                    user.accounts.linkedin.picture = body.values[0];
                    user.save(function (err) {
                        if (err) {
                            log.error(err);
                        }
                        res.render('auto-close.ejs', {});
                    });
                }
                else {
                    res.render('auto-close.ejs', {});
                }

            }

        });

        /* request.post({
         url: 'https://www.linkedin.com/uas/oauth2/accessToken',
         json: true,
         body: {
         client_id: LINKEDIN_CONFIG.clientId,
         client_secret: LINKEDIN_CONFIG.clientSecret,
         grant_type: 'authorization_code', //The value of this field should always be:  authorization_code
         code: req.query.code,
         redirect_uri: '/auth/connect/linkedin/callback'
         },
         qs: {
         client_id: LINKEDIN_CONFIG.clientId,
         client_secret: LINKEDIN_CONFIG.clientSecret,
         grant_type: 'authorization_code', //The value of this field should always be:  authorization_code
         code: req.query.code,
         redirect_uri: req.get('origin') + '/auth/connect/linkedin/callback'
         }
         }, function (err, resp, body) {
         if (err) {
         log.error('linkedin err', err);
         res.render('auto-close-error.ejs', {});
         }
         else {
         /!**
         * Results have something like:
         * {"expires_in":5184000,"access_token":". . . ."}
         *!/

         body = ijson.parse(body);

         log.error('linkedin success', body);

         req.user.linkedin.access_token = body.access_token;

         res.render('auto-close.ejs', {});
         //return res.redirect('/profile');
         }
         });*/
    });