Skip to content

Commit 0672745

Browse files
make avataaars possible
1 parent 5a1421f commit 0672745

File tree

2 files changed

+46
-29
lines changed

2 files changed

+46
-29
lines changed

server/hooks/save-remote-images.js

Lines changed: 43 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ module.exports = function (options = []) { // eslint-disable-line no-unused-vars
2828

2929
// save all given fields and update the hook data
3030
options.forEach((field) => {
31-
if (!hook.data[field] || hook.data[field].search(uploadsUrl) >= 0) {
31+
if (!hook.data[field] || (typeof hook.data[field] === 'string' && hook.data[field].search(uploadsUrl) >= 0)) {
3232
// skip invalid and local data
3333
return;
3434
}
@@ -39,32 +39,16 @@ module.exports = function (options = []) { // eslint-disable-line no-unused-vars
3939
const imgName = `${field}_${uuid}`;
4040
let imgPath = path.resolve('public', 'uploads/' + imgName);
4141

42-
request({
43-
url: hook.data[field],
44-
encoding: null
45-
}, (err, res, body) => {
46-
if (err) {
47-
hook.app.error(err);
48-
reject(err);
49-
}
42+
if (typeof hook.data[field] === 'object') {
5043
try {
51-
const mimeType = res.headers['content-type'];
52-
if (mimeType.indexOf('image') !== 0) {
53-
hook.app.error('its not an image');
54-
reject('its not an image');
55-
}
56-
57-
const ext = mime.getExtension(mimeType);
44+
hook.app.debug('SAVE REMOTE IMAGES HOOK');
45+
hook.app.debug(typeof hook.data[field]);
5846

59-
imgPath += `.${ext}`;
60-
61-
fs.writeFileSync(imgPath, body, {
47+
fs.writeFileSync(`${imgPath}.png`, hook.data[field], {
6248
encoding: 'binary'
6349
});
64-
6550
loading--;
66-
67-
hook.data[field] = uploadsUrl + imgName + `.${ext}`;
51+
hook.data[field] = uploadsUrl + imgName + '.png';
6852

6953
if (imgCount > 0 && loading <= 0) {
7054
hook.app.debug('Download(s) finished', urls);
@@ -73,7 +57,43 @@ module.exports = function (options = []) { // eslint-disable-line no-unused-vars
7357
} catch (err) {
7458
hook.app.error(err);
7559
}
76-
});
60+
} else {
61+
request({
62+
url: hook.data[field],
63+
encoding: null
64+
}, (err, res, body) => {
65+
if (err) {
66+
hook.app.error(err);
67+
reject(err);
68+
}
69+
try {
70+
const mimeType = res.headers['content-type'];
71+
if (mimeType.indexOf('image') !== 0) {
72+
hook.app.error('its not an image');
73+
reject('its not an image');
74+
}
75+
76+
const ext = mime.getExtension(mimeType);
77+
78+
imgPath += `.${ext}`;
79+
80+
fs.writeFileSync(imgPath, body, {
81+
encoding: 'binary'
82+
});
83+
84+
loading--;
85+
86+
hook.data[field] = uploadsUrl + imgName + `.${ext}`;
87+
88+
if (imgCount > 0 && loading <= 0) {
89+
hook.app.debug('Download(s) finished', urls);
90+
resolve(hook);
91+
}
92+
} catch (err) {
93+
hook.app.error(err);
94+
}
95+
});
96+
}
7797

7898
hook.app.debug('Downloading', hook.data[field]);
7999
});

server/services/users/users.hooks.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,7 @@ module.exports = {
8989
),
9090
createAdmin(),
9191
createDefaultAvatar(),
92-
saveRemoteImages(['avatar', 'coverImg']),
93-
saveAvatar()
92+
saveRemoteImages(['avatar', 'coverImg'])
9493
],
9594
update: [
9695
...restrict,
@@ -99,8 +98,7 @@ module.exports = {
9998
when(isProvider('external'),
10099
restrictUserRole()
101100
),
102-
saveRemoteImages(['avatar', 'coverImg']),
103-
saveAvatar()
101+
saveRemoteImages(['avatar', 'coverImg'])
104102
],
105103
patch: [
106104
...restrict,
@@ -116,8 +114,7 @@ module.exports = {
116114
when(isProvider('external'),
117115
restrictUserRole()
118116
),
119-
saveRemoteImages(['avatar', 'coverImg']),
120-
saveAvatar()
117+
saveRemoteImages(['avatar', 'coverImg'])
121118
],
122119
remove: [ ...restrict, disableMultiItemChange() ]
123120
},

0 commit comments

Comments
 (0)