33 documentMimeTypes ,
44 fileExtensionMimeTypeMap ,
55 imagesMimeTypes ,
6+ videoMimeTypes ,
67} from '../../globals' ;
78import {
89 Message ,
@@ -190,7 +191,16 @@ const getMessageContent = (message: Message) => {
190191 format : fileFormat ,
191192 } ,
192193 } ) ;
193- } else if ( documentMimeTypes . includes ( mimeType ) ) {
194+ } else if ( videoMimeTypes . includes ( mimeType ) ) {
195+ out . push ( {
196+ video : {
197+ format : fileFormat ,
198+ source : {
199+ bytes,
200+ } ,
201+ } ,
202+ } ) ;
203+ } else {
194204 out . push ( {
195205 document : {
196206 format : fileFormat ,
@@ -204,25 +214,46 @@ const getMessageContent = (message: Message) => {
204214 } else if ( item . type === 'file' ) {
205215 const mimeType = item . file ?. mime_type || fileExtensionMimeTypeMap . pdf ;
206216 const fileFormat = mimeType . split ( '/' ) [ 1 ] ;
207- if ( item . file ?. file_url ) {
217+ if ( imagesMimeTypes . includes ( mimeType ) ) {
208218 out . push ( {
209- document : {
219+ image : {
220+ source : {
221+ ...( item . file ?. file_data && { bytes : item . file . file_data } ) ,
222+ ...( item . file ?. file_url && {
223+ s3Location : {
224+ uri : item . file . file_url ,
225+ } ,
226+ } ) ,
227+ } ,
228+ format : fileFormat ,
229+ } ,
230+ } ) ;
231+ } else if ( videoMimeTypes . includes ( mimeType ) ) {
232+ out . push ( {
233+ video : {
210234 format : fileFormat ,
211- name : item . file . file_name || crypto . randomUUID ( ) ,
212235 source : {
213- s3Location : {
214- uri : item . file . file_url ,
215- } ,
236+ ...( item . file ?. file_data && { bytes : item . file . file_data } ) ,
237+ ...( item . file ?. file_url && {
238+ s3Location : {
239+ uri : item . file . file_url ,
240+ } ,
241+ } ) ,
216242 } ,
217243 } ,
218244 } ) ;
219- } else if ( item . file ?. file_data ) {
245+ } else {
220246 out . push ( {
221247 document : {
222248 format : fileFormat ,
223- name : item . file . file_name || crypto . randomUUID ( ) ,
249+ name : item . file ? .file_name || crypto . randomUUID ( ) ,
224250 source : {
225- bytes : item . file . file_data ,
251+ ...( item . file ?. file_data && { bytes : item . file . file_data } ) ,
252+ ...( item . file ?. file_url && {
253+ s3Location : {
254+ uri : item . file . file_url ,
255+ } ,
256+ } ) ,
226257 } ,
227258 } ,
228259 } ) ;
0 commit comments