Make avatar apis buffer based

This commit is contained in:
Johannes Zellner
2021-07-08 10:40:10 +02:00
parent caa8104dda
commit 0db62b4fd8
3 changed files with 12 additions and 9 deletions
+6 -4
View File
@@ -783,11 +783,13 @@ function compareRoles(role1, role2) {
async function getAvatarUrl(user) {
assert.strictEqual(typeof user, 'object');
const result = await getAvatar(user.id);
const fallbackUrl = `${settings.dashboardOrigin()}/img/avatar-default-symbolic.svg`;
if (result.toString() === constants.AVATAR_NONE) return fallbackUrl;
else if (result.toString() === constants.AVATAR_GRAVATAR) return `https://www.gravatar.com/avatar/${require('crypto').createHash('md5').update(user.email).digest('hex')}.jpg`;
const [error, result] = await safe(getAvatar(user.id));
if (error) throw error;
if (result.equals(constants.AVATAR_NONE)) return fallbackUrl;
else if (result.equals(constants.AVATAR_GRAVATAR)) return `https://www.gravatar.com/avatar/${require('crypto').createHash('md5').update(user.email).digest('hex')}.jpg`;
else if (result) return `${settings.dashboardOrigin()}/api/v1/profile/avatar/${user.id}`;
else return fallbackUrl;
}
@@ -802,7 +804,7 @@ async function getAvatar(id) {
async function setAvatar(id, avatar) {
assert.strictEqual(typeof id, 'string');
assert(avatar === constants.AVATAR_NONE || avatar === constants.AVATAR_GRAVATAR || Buffer.isBuffer(avatar));
assert(Buffer.isBuffer(avatar));
const result = await database.query('UPDATE users SET avatar=? WHERE id = ?', [ avatar, id ]);
if (result.length === 0) throw new BoxError(BoxError.NOT_FOUND, 'User not found');