diff --git a/keyserver/src/updaters/account-updaters.js b/keyserver/src/updaters/account-updaters.js --- a/keyserver/src/updaters/account-updaters.js +++ b/keyserver/src/updaters/account-updaters.js @@ -116,6 +116,11 @@ throw new ServerError('not_logged_in'); } + // keyserver shouldn't support thick-thread-specific requests + if (request.type === 'non_keyserver_image') { + throw new ServerError('invalid_parameters'); + } + const newAvatarValue = request.type === 'remove' ? null : JSON.stringify(request); diff --git a/lib/types/avatar-types.js b/lib/types/avatar-types.js --- a/lib/types/avatar-types.js +++ b/lib/types/avatar-types.js @@ -43,8 +43,16 @@ export type UpdateUserAvatarRemoveRequest = { +type: 'remove' }; +export type NonKeyserverImageAvatarContent = { + +type: 'non_keyserver_image', + +blobURI: string, + +encryptionKey: string, + +thumbHash: ?string, +}; + export type UpdateUserAvatarRequest = | AvatarDBContent + | NonKeyserverImageAvatarContent | UpdateUserAvatarRemoveRequest; export type ClientEmojiAvatar = EmojiAvatarDBContent; diff --git a/native/account/registration/avatar-selection.react.js b/native/account/registration/avatar-selection.react.js --- a/native/account/registration/avatar-selection.react.js +++ b/native/account/registration/avatar-selection.react.js @@ -95,7 +95,8 @@ const clientRequest = selection.updateUserAvatarRequest; invariant( clientRequest.type !== 'image' && - clientRequest.type !== 'encrypted_image', + clientRequest.type !== 'encrypted_image' && + clientRequest.type !== 'non_keyserver_image', 'image avatars need to be uploaded', ); const newAvatarData = {