todos-contra-el-fuego-web/imports/modules/get-oauth-profile.js
2018-02-12 19:52:22 +01:00

39 lines
969 B
JavaScript

const parseGoogleData = service => ({
email: service.email,
name: {
first: service.given_name,
last: service.family_name
},
lang: service.locale
});
const parseGithubData = (profile, service) => {
const name = profile.name.split(' ');
return {
email: service.email,
name: {
first: name[0],
last: name[1]
}
};
};
const parseFacebookData = service => ({
email: service.email,
name: {
first: service.first_name,
last: service.last_name
}
});
const getDataForService = (profile, services) => {
if (services.facebook) return parseFacebookData(services.facebook);
if (services.github) return parseGithubData(profile, services.github);
if (services.google) return parseGoogleData(services.google);
};
export default (options, user) => {
const isOAuth = !options.password;
const serviceData = isOAuth ? getDataForService(options.profile, user.services) : null;
return isOAuth ? serviceData : null;
};