Created
March 14, 2013 16:29
-
-
Save shinecita/5162819 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Model.resizeAvatar = function (user, done) { | |
var src = user.facebook.avatar | |
, filename = user._id.toString() | |
, url = '/avatars/' + filename; | |
if(src.indexOf('http') == -1 || src.indexOf('https') == -1) { | |
src = 'http:'+src; | |
}; | |
debug("avatar :", user.facebook.avatar) | |
debug("avatar src:", src) | |
request(src, {encoding: null}, function(err, res, picture) { | |
debug("Requested src", res.statusCode) | |
if (err) return done(err); | |
debug("resizing image srcData...") | |
im.resize({ | |
srcData: picture, | |
width: 200, | |
height: "200^", | |
customArgs: [ | |
"-gravity", "center", | |
"-extent", "200x200" | |
] | |
}, function(err, stdout, stderr){ | |
debug("Image resized result:err, stdout, stderr:", err, stdout, stderr) | |
if (err) return done(err); | |
debug("Uploading to s3..", url) | |
var upload = s3Client.put(url, { | |
'Content-Length': stdout.length, | |
'Content-Type': 'image/jpeg', | |
'x-amz-acl': 'public-read' | |
}); | |
if (err) return done(err); | |
upload.on('response', function (res) { | |
if (200 == res.statusCode) { | |
user.facebook.avatar = upload.url | |
User | |
.save(user, function(err) { | |
if (err) return done(err); | |
User.byId(user._id, done); | |
}); | |
} else { | |
done(new Error('Error Uploading')); | |
} | |
}); | |
upload.end(stdout, 'binary'); | |
}); | |
}); | |
} | |
Model.createFacebookMarker = function (user, done) { | |
var filename = user._id.toString(); | |
debug("resizing avatar...") | |
User.resizeAvatar(user, function(err, user) { | |
debug("Avatar resized...", err) | |
if (err) return done(err); | |
debug("... ok") | |
debug("Generating Marker..") | |
generateMarker(user.facebook.avatar, user._id.toString(), function (err, markerUrl) { | |
debug("... Generating Marker...ok.", err, markerUrl) | |
if (err) return done(err); | |
user.markerUrl = markerUrl+ "?" + Date.now(); | |
debug("... Saving User...") | |
User | |
.save(user, function(err) { | |
debug("... ok.", err) | |
if (err) return done(err); | |
User.byId(user._id, done); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment