diff --git a/server/src/integrations/integrations.service.ts b/server/src/integrations/integrations.service.ts index a9cd063e..60cb34ad 100644 --- a/server/src/integrations/integrations.service.ts +++ b/server/src/integrations/integrations.service.ts @@ -35,6 +35,7 @@ export class IntegrationsService { async linkedIn(userId: number, path: string): Promise { let archive: StreamZip.StreamZipAsync; + let isArchiveValid = false; try { archive = new StreamZip.async({ file: path }); @@ -48,6 +49,9 @@ export class IntegrationsService { slug: `imported-from-linkedin-${timestamp}`, }); + // Check if archive is valid + isArchiveValid = await archive.entries().then((entries) => Object.keys(entries).length > 0); + // Profile try { const profileCSV = (await archive.entryData('Profile.csv')).toString(); @@ -261,7 +265,7 @@ export class IntegrationsService { throw new HttpException('You must upload a valid zip archive downloaded from LinkedIn.', HttpStatus.BAD_REQUEST); } finally { await unlink(path); - !isEmpty(archive) && archive.close(); + isArchiveValid && archive.close(); } }