-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathindex.js
More file actions
43 lines (35 loc) · 838 Bytes
/
index.js
File metadata and controls
43 lines (35 loc) · 838 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/**
* Module Dependencies
*/
var md5 = require('md5');
/**
* Browser vs node normalization
*/
md5 = (md5.digest_s) ? md5.digest_s : md5;
/**
* Export plugin
*/
module.exports = function(prop, attr, defaultAvatar) {
prop = prop || 'email';
attr = attr || 'gravatar';
return function(model) {
model.attr(attr, { type : 'string' });
model.on('saving', function(obj, fn) {
if(obj[attr]()) return fn();
var email = obj[prop]();
obj[attr](url(email, defaultAvatar));
fn();
});
};
};
/**
* Get the gravatar url
*
* @param {String} email
* @return {String} url
*/
function url(email, defaultAvatar) {
if (defaultAvatar) defaultAvatar = 'd=' + defaultAvatar;
defaultAvatar = defaultAvatar || ''
return 'https://secure.gravatar.com/avatar/' + md5(email) + '?' + defaultAvatar;
}