@@ -11,6 +11,7 @@ import Project from '../models/project';
1111import { User } from '../models/user' ;
1212import { resolvePathToFile } from '../utils/filePath' ;
1313import { generateFileSystemSafeName } from '../utils/generateFileSystemSafeName' ;
14+ import { commitPendingFiles } from '../utils/pendingAssets' ;
1415
1516const s3Client = new S3Client ( {
1617 credentials : {
@@ -60,6 +61,11 @@ export async function updateProject(req, res) {
6061 // only allow whitelisted fields so ownership/slug etc can't be overwritten
6162 const allowedFields = [ 'name' , 'files' , 'updatedAt' , 'visibility' ] ;
6263 const updateData = { } ;
64+
65+ if ( req . body . files !== undefined ) {
66+ updateData . files = await commitPendingFiles ( req . body . files , req . user . id ) ;
67+ }
68+
6369 allowedFields . forEach ( ( field ) => {
6470 if ( req . body [ field ] !== undefined ) {
6571 updateData [ field ] = req . body [ field ] ;
@@ -77,21 +83,7 @@ export async function updateProject(req, res) {
7783 )
7884 . populate ( 'user' , 'username' )
7985 . exec ( ) ;
80- if (
81- req . body . files &&
82- updatedProject . files . length !== req . body . files . length
83- ) {
84- const oldFileIds = updatedProject . files . map ( ( file ) => file . id ) ;
85- const newFileIds = req . body . files . map ( ( file ) => file . id ) ;
86- const staleIds = oldFileIds . filter ( ( id ) => newFileIds . indexOf ( id ) === - 1 ) ;
87- staleIds . forEach ( ( staleId ) => {
88- updatedProject . files . id ( staleId ) . deleteOne ( ) ;
89- } ) ;
90- const savedProject = await updatedProject . save ( ) ;
91- res . json ( savedProject ) ;
92- } else {
93- res . json ( updatedProject ) ;
94- }
86+ res . json ( updatedProject ) ;
9587 } catch ( error ) {
9688 console . error ( error ) ;
9789 res . status ( 500 ) . json ( { success : false } ) ;
0 commit comments