'use strict';

/**
 * Module dependencies.
 */
var passport = require('passport'),
	url = require('url'),
	FacebookStrategy = require('passport-facebook').Strategy,
	config = require('../config'),
	users = require('../../app/controllers/users.server.controller');

module.exports = function() {
	// Use facebook strategy
	passport.use(new FacebookStrategy({
			clientID: config.facebook.clientID,
			clientSecret: config.facebook.clientSecret,
			callbackURL: config.facebook.callbackURL,
			passReqToCallback: true
		},
		function(req, accessToken, refreshToken, profile, done) {
			// Set the provider data and include tokens
			var providerData = profile._json;
			providerData.accessToken = accessToken;
			providerData.refreshToken = refreshToken;

			console.log('\n\nInside facebook.js strategy file.\n\n');

			// Create the user OAuth profile
			// var providerUserProfile = {
			// 	firstName: profile.name.givenName,
			// 	lastName: profile.name.familyName,
			// 	displayName: profile.displayName,
			// 	email: profile.emails[0].value,
			// 	username: profile.username,
			// 	provider: 'facebook',
			// 	providerIdentifierField: 'id',
			// 	providerData: providerData
			// };

			console.log('\n\nInside facebook.js strategy file. Point 2.\n\n');

			// Save the user OAuth profile
			users.saveOAuthUserProfile(req, providerUserProfile, done);
		}
	));
};
