/** * Internal dependencies */ import { OriginalVideoPressVideo, VideoPressVideo } from '../../admin/types'; export const mapVideoFromWPV2MediaEndpoint = ( video: OriginalVideoPressVideo ): VideoPressVideo => { const { media_details: mediaDetails, id, jetpack_videopress: jetpackVideoPress, jetpack_videopress_guid: guid, slug: filename, } = video; const { videopress: videoPressMediaDetails, width, height } = mediaDetails; const { title, description, caption, rating, allow_download: allowDownload, privacy_setting: privacySetting, } = jetpackVideoPress; const { original: url, poster, upload_date: uploadDate, duration, is_private: isPrivate, file_url_base: fileURLBase, finished, files = { dvd: { original_img: '', }, }, } = videoPressMediaDetails || {}; const { dvd } = files; /* * Define thumbnail picking the image from DVD file type * Issue: https://github.com/Automattic/jetpack/issues/26319 */ const thumbnail = dvd?.original_img ? `${ fileURLBase.https }${ dvd.original_img }` : undefined; return { id, guid, title, description, caption, url, uploadDate, duration, isPrivate, posterImage: poster, allowDownload, rating, privacySetting, poster: { src: poster, width, height, }, thumbnail, finished, filename, }; }; export const mapVideosFromWPV2MediaEndpoint = ( videos: OriginalVideoPressVideo[] ): VideoPressVideo[] => { return videos?.map?.( mapVideoFromWPV2MediaEndpoint ); }; export const mapLocalVideoFromWPV2MediaEndpoint = ( video: OriginalVideoPressVideo ): VideoPressVideo => { const { media_details: mediaDetails, id, jetpack_videopress: jetpackVideoPress, source_url: url, date: uploadDate, } = video; const { width, height, length: duration } = mediaDetails; const { title, description, caption } = jetpackVideoPress; return { id, title, description, caption, width, height, url, uploadDate, duration, }; }; export const mapLocalVideosFromWPV2MediaEndpoint = ( videos: OriginalVideoPressVideo[] ): VideoPressVideo[] => { return videos.map( mapLocalVideoFromWPV2MediaEndpoint ); };