From 8f4f29571bc71eadac8eb1599de35270e9c2c4f4 Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Sun, 2 Mar 2025 09:10:51 +0100
Subject: [PATCH] Bugfix/fix export functionality of platforms (#4379)

* Fix export functionality of platforms

* Update changelog
---
 CHANGELOG.md                              |  1 +
 apps/api/src/app/export/export.service.ts | 16 ++++++----------
 2 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index c518d92f..e1adcd3b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ### Fixed
 
+- Handled an exception in the export functionality related to platforms
 - Handled an exception in the benchmark service related to unnamed asset profiles
 
 ## 2.142.0 - 2025-02-28
diff --git a/apps/api/src/app/export/export.service.ts b/apps/api/src/app/export/export.service.ts
index 8d7585c0..c6c24d6a 100644
--- a/apps/api/src/app/export/export.service.ts
+++ b/apps/api/src/app/export/export.service.ts
@@ -26,7 +26,7 @@ export class ExportService {
     userCurrency: string;
     userId: string;
   }): Promise<Export> {
-    const platforms: Platform[] = [];
+    const platformsMap: { [platformId: string]: Platform } = {};
 
     const accounts = (
       await this.accountService.accounts({
@@ -46,15 +46,11 @@ export class ExportService {
         id,
         isExcluded,
         name,
-        platformId,
-        Platform: platform
+        Platform: platform,
+        platformId
       }) => {
-        if (
-          !platforms.some(({ id: currentPlatformId }) => {
-            return currentPlatformId === platform.id;
-          })
-        ) {
-          platforms.push(platform);
+        if (platformId) {
+          platformsMap[platformId] = platform;
         }
 
         return {
@@ -99,7 +95,7 @@ export class ExportService {
     return {
       meta: { date: new Date().toISOString(), version: environment.version },
       accounts,
-      platforms,
+      platforms: Object.values(platformsMap),
       tags,
       activities: activities.map(
         ({