From 8dfb3b8bbf6851baf5e75ee70899e16dbf339674 Mon Sep 17 00:00:00 2001 From: raclim Date: Mon, 29 Apr 2024 14:48:15 -0400 Subject: [PATCH 1/9] remove deleteResult variable --- server/controllers/aws.controller.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/controllers/aws.controller.js b/server/controllers/aws.controller.js index 6746ad84f2..0a85ffdfd1 100644 --- a/server/controllers/aws.controller.js +++ b/server/controllers/aws.controller.js @@ -39,7 +39,7 @@ export function getObjectKey(url) { } return objectKey; } -// TODO: callback should be removed +// TODO: callbacks should be removed from deleteObjectsFromS3 and deleteObjectFromS3 export async function deleteObjectsFromS3(keyList, callback) { const objectsToDelete = keyList?.map((key) => ({ Key: key })); @@ -54,8 +54,8 @@ export async function deleteObjectsFromS3(keyList, callback) { }; try { - const deleteResult = await s3Client.send(new DeleteObjectsCommand(params)); - callback?.(null, deleteResult); + await s3Client.send(new DeleteObjectsCommand(params)); + callback?.(); } catch (error) { callback?.(error); } From 1f687e046a179f85e43cc787528e44c1dec0c165 Mon Sep 17 00:00:00 2001 From: raclim Date: Mon, 29 Apr 2024 14:59:51 -0400 Subject: [PATCH 2/9] add console logs --- server/controllers/aws.controller.js | 4 ++++ server/controllers/project.controller/deleteProject.js | 2 ++ 2 files changed, 6 insertions(+) diff --git a/server/controllers/aws.controller.js b/server/controllers/aws.controller.js index 0a85ffdfd1..5c19ad692f 100644 --- a/server/controllers/aws.controller.js +++ b/server/controllers/aws.controller.js @@ -43,6 +43,8 @@ export function getObjectKey(url) { export async function deleteObjectsFromS3(keyList, callback) { const objectsToDelete = keyList?.map((key) => ({ Key: key })); + console.log('objects to delete: ', objectsToDelete); + if (!objectsToDelete.length) { callback?.(); return; @@ -54,9 +56,11 @@ export async function deleteObjectsFromS3(keyList, callback) { }; try { + console.log('we here'); await s3Client.send(new DeleteObjectsCommand(params)); callback?.(); } catch (error) { + console.log('error: ', error); callback?.(error); } } diff --git a/server/controllers/project.controller/deleteProject.js b/server/controllers/project.controller/deleteProject.js index 19a8166eae..27796e6593 100644 --- a/server/controllers/project.controller/deleteProject.js +++ b/server/controllers/project.controller/deleteProject.js @@ -22,6 +22,8 @@ async function deleteFilesFromS3(files) { }) .map((file) => getObjectKey(file.url)); + console.log('filtered files: ', filteredFiles); + try { await deleteObjectsFromS3(filteredFiles); } catch (error) { From 4dcc4aa44991592627149572d4e25178d3a9530e Mon Sep 17 00:00:00 2001 From: raclim Date: Mon, 29 Apr 2024 18:16:56 -0400 Subject: [PATCH 3/9] remove console logs, change if statement condition --- server/controllers/aws.controller.js | 6 +----- server/controllers/project.controller/deleteProject.js | 2 -- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/server/controllers/aws.controller.js b/server/controllers/aws.controller.js index 5c19ad692f..5a020f5784 100644 --- a/server/controllers/aws.controller.js +++ b/server/controllers/aws.controller.js @@ -43,9 +43,7 @@ export function getObjectKey(url) { export async function deleteObjectsFromS3(keyList, callback) { const objectsToDelete = keyList?.map((key) => ({ Key: key })); - console.log('objects to delete: ', objectsToDelete); - - if (!objectsToDelete.length) { + if (objectsToDelete.length > 0) { callback?.(); return; } @@ -56,11 +54,9 @@ export async function deleteObjectsFromS3(keyList, callback) { }; try { - console.log('we here'); await s3Client.send(new DeleteObjectsCommand(params)); callback?.(); } catch (error) { - console.log('error: ', error); callback?.(error); } } diff --git a/server/controllers/project.controller/deleteProject.js b/server/controllers/project.controller/deleteProject.js index 27796e6593..19a8166eae 100644 --- a/server/controllers/project.controller/deleteProject.js +++ b/server/controllers/project.controller/deleteProject.js @@ -22,8 +22,6 @@ async function deleteFilesFromS3(files) { }) .map((file) => getObjectKey(file.url)); - console.log('filtered files: ', filteredFiles); - try { await deleteObjectsFromS3(filteredFiles); } catch (error) { From e2ee3c5b218ad66965fe0aba8d136f5102b97a35 Mon Sep 17 00:00:00 2001 From: raclim Date: Mon, 29 Apr 2024 18:59:14 -0400 Subject: [PATCH 4/9] rearrange function --- server/controllers/aws.controller.js | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/server/controllers/aws.controller.js b/server/controllers/aws.controller.js index 5a020f5784..1d54d75c24 100644 --- a/server/controllers/aws.controller.js +++ b/server/controllers/aws.controller.js @@ -44,20 +44,19 @@ export async function deleteObjectsFromS3(keyList, callback) { const objectsToDelete = keyList?.map((key) => ({ Key: key })); if (objectsToDelete.length > 0) { - callback?.(); - return; - } - - const params = { - Bucket: process.env.S3_BUCKET, - Delete: { Objects: objectsToDelete } - }; + const params = { + Bucket: process.env.S3_BUCKET, + Delete: { Objects: objectsToDelete } + }; - try { - await s3Client.send(new DeleteObjectsCommand(params)); + try { + await s3Client.send(new DeleteObjectsCommand(params)); + callback?.(); + } catch (error) { + callback?.(error); + } + } else { callback?.(); - } catch (error) { - callback?.(error); } } From 7c8b9a664792902fe6fcd3a9b30df34af67ccfba Mon Sep 17 00:00:00 2001 From: raclim Date: Mon, 29 Apr 2024 20:16:22 -0400 Subject: [PATCH 5/9] remove try/catch, refactor sending response --- server/controllers/aws.controller.js | 19 ++++++++++++++++--- .../project.controller/deleteProject.js | 12 +----------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/server/controllers/aws.controller.js b/server/controllers/aws.controller.js index 1d54d75c24..249dbd2310 100644 --- a/server/controllers/aws.controller.js +++ b/server/controllers/aws.controller.js @@ -43,6 +43,19 @@ export function getObjectKey(url) { export async function deleteObjectsFromS3(keyList, callback) { const objectsToDelete = keyList?.map((key) => ({ Key: key })); + const sendResponse = (cb, err) => { + if (cb && err) { + callback(err); + } else if (cb) { + callback(); + } else if (!cb && err) { + console.error('Failed to delete objects from S3.'); + throw err; + } + + return 'Objects successfully deleted from S3.'; + }; + if (objectsToDelete.length > 0) { const params = { Bucket: process.env.S3_BUCKET, @@ -51,12 +64,12 @@ export async function deleteObjectsFromS3(keyList, callback) { try { await s3Client.send(new DeleteObjectsCommand(params)); - callback?.(); + sendResponse(); } catch (error) { - callback?.(error); + sendResponse(); } } else { - callback?.(); + sendResponse(); } } diff --git a/server/controllers/project.controller/deleteProject.js b/server/controllers/project.controller/deleteProject.js index 19a8166eae..1b747cc028 100644 --- a/server/controllers/project.controller/deleteProject.js +++ b/server/controllers/project.controller/deleteProject.js @@ -56,17 +56,7 @@ export default async function deleteProject(req, res) { return; } - try { - await deleteFilesFromS3(project.files); - } catch (error) { - sendFailure( - new ProjectDeletionError('Failed to delete associated project files.', { - code: 500 - }) - ); - return; - } - + await deleteFilesFromS3(project.files); await project.remove(); res.status(200).end(); } catch (error) { From 942f2488e079e5f05dbb2c48f3c30b268d04bedf Mon Sep 17 00:00:00 2001 From: raclim Date: Mon, 29 Apr 2024 22:57:08 -0400 Subject: [PATCH 6/9] rearrange line in deleteProject test --- .../project.controller/__test__/deleteProject.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/controllers/project.controller/__test__/deleteProject.test.js b/server/controllers/project.controller/__test__/deleteProject.test.js index c1c28f9a03..fe812e4dd5 100644 --- a/server/controllers/project.controller/__test__/deleteProject.test.js +++ b/server/controllers/project.controller/__test__/deleteProject.test.js @@ -74,8 +74,8 @@ describe('project.controller', () => { await deleteProject(request, response); - expect(response.status).toHaveBeenCalledWith(200); expect(deleteObjectsFromS3).toHaveBeenCalled(); expect(project.remove).toHaveBeenCalled(); + expect(response.status).toHaveBeenCalledWith(200); }); }); From 37c853e8111c21daa71a0b6fcc1383813d18df1c Mon Sep 17 00:00:00 2001 From: raclim Date: Tue, 30 Apr 2024 00:47:28 -0400 Subject: [PATCH 7/9] update gh workflow --- .github/workflows/deploy-staging.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-staging.yml b/.github/workflows/deploy-staging.yml index f60eef8aa6..1861fec682 100644 --- a/.github/workflows/deploy-staging.yml +++ b/.github/workflows/deploy-staging.yml @@ -3,7 +3,7 @@ on: workflow_run: workflows: ["Test"] branches: - - develop + - release-testing types: - completed env: From ac91d0af7a44dd4336fc688922ee33c54af0ec55 Mon Sep 17 00:00:00 2001 From: raclim Date: Tue, 30 Apr 2024 09:38:56 -0400 Subject: [PATCH 8/9] test commit --- .github/workflows/deploy-staging.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-staging.yml b/.github/workflows/deploy-staging.yml index 1861fec682..86389b27c9 100644 --- a/.github/workflows/deploy-staging.yml +++ b/.github/workflows/deploy-staging.yml @@ -3,7 +3,7 @@ on: workflow_run: workflows: ["Test"] branches: - - release-testing + - release-delete-sketch types: - completed env: From 9c5cc5cebe79a072c72336d108690143f8049817 Mon Sep 17 00:00:00 2001 From: raclim Date: Tue, 30 Apr 2024 09:52:37 -0400 Subject: [PATCH 9/9] change back staging workflow to develop branch --- .github/workflows/deploy-staging.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-staging.yml b/.github/workflows/deploy-staging.yml index 86389b27c9..f60eef8aa6 100644 --- a/.github/workflows/deploy-staging.yml +++ b/.github/workflows/deploy-staging.yml @@ -3,7 +3,7 @@ on: workflow_run: workflows: ["Test"] branches: - - release-delete-sketch + - develop types: - completed env: