diff --git a/keyserver/src/responders/message-responders.js b/keyserver/src/responders/message-responders.js --- a/keyserver/src/responders/message-responders.js +++ b/keyserver/src/responders/message-responders.js @@ -41,6 +41,7 @@ import { assignMedia, assignMessageContainerToMedia, + assignThreadToMedia, } from '../updaters/upload-updaters'; import { validateInput } from '../utils/validation-utils'; @@ -184,6 +185,8 @@ ); } + await assignThreadToMedia(viewer); + return { newMessageInfo }; } diff --git a/keyserver/src/updaters/upload-updaters.js b/keyserver/src/updaters/upload-updaters.js --- a/keyserver/src/updaters/upload-updaters.js +++ b/keyserver/src/updaters/upload-updaters.js @@ -35,4 +35,16 @@ await dbQuery(query); } -export { assignMedia, assignMessageContainerToMedia }; +async function assignThreadToMedia(viewer: Viewer): Promise { + const query = SQL` + UPDATE uploads + SET thread = ( + SELECT thread FROM messages + WHERE messages.id = uploads.container + ) + WHERE uploader = ${viewer.id} AND thread IS NULL + `; + await dbQuery(query); +} + +export { assignMedia, assignMessageContainerToMedia, assignThreadToMedia };