From f6069f3bdd1239677deafd2ad5faa8e916fea2de Mon Sep 17 00:00:00 2001
From: Etienne Loupias <eloupias@grandlyon.com>
Date: Wed, 12 Mar 2025 13:42:26 +0100
Subject: [PATCH] wip inProgress / history

---
 src/orientation/dto/orientation.dto.ts |  6 +++---
 src/orientation/orientation.schema.ts  |  6 +++++-
 src/orientation/orientation.service.ts | 11 +++++++++--
 3 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/src/orientation/dto/orientation.dto.ts b/src/orientation/dto/orientation.dto.ts
index c9de222f1..9b4a2446e 100644
--- a/src/orientation/dto/orientation.dto.ts
+++ b/src/orientation/dto/orientation.dto.ts
@@ -136,8 +136,8 @@ export class OrientationDto {
   @Type(() => customStructureDto)
   structureOrientator: string | customStructureDto;
 
-  @ApiProperty({ enum: ['pending', 'acknowledged', 'completed'] })
+  @ApiProperty({ enum: ['pending', 'acknowledged', 'completed', 'uncompleted', 'expired'] })
   @IsNotEmpty()
-  @IsEnum(['pending', 'acknowledged', 'completed'])
-  status: 'pending' | 'acknowledged' | 'completed';
+  @IsEnum(['pending', 'acknowledged', 'completed', 'uncompleted', 'expired'])
+  status: 'pending' | 'acknowledged' | 'completed' | 'uncompleted' | 'expired';
 }
diff --git a/src/orientation/orientation.schema.ts b/src/orientation/orientation.schema.ts
index 7bd1d1728..d69cb673b 100644
--- a/src/orientation/orientation.schema.ts
+++ b/src/orientation/orientation.schema.ts
@@ -98,7 +98,11 @@ export class Orientation {
   @Prop({ type: mongoose.Schema.Types.Mixed })
   structureOrientator: string | customStructure;
 
-  @Prop({ required: true, enum: ['pending', 'acknowledged', 'completed'], default: 'pending' })
+  @Prop({
+    required: true,
+    enum: ['pending', 'acknowledged', 'completed', 'uncompleted', 'expired'],
+    default: 'pending',
+  })
   status: string;
 }
 
diff --git a/src/orientation/orientation.service.ts b/src/orientation/orientation.service.ts
index f7e04c85f..e44b74514 100644
--- a/src/orientation/orientation.service.ts
+++ b/src/orientation/orientation.service.ts
@@ -39,6 +39,7 @@ export class OrientationService {
 
   public async find(userId: string, structureId: string = null): Promise<any> {
     try {
+      const historyStatus = ['completed', 'uncompleted', 'expired'];
       let myOrientationsFilters;
       let todoOrientationsFilters;
 
@@ -58,8 +59,14 @@ export class OrientationService {
       }
 
       return {
-        myOrientations: await this.findWithFilters(myOrientationsFilters),
-        todoOrientations: await this.findWithFilters(todoOrientationsFilters),
+        myOrientations: {
+          inProgress: await this.findWithFilters({ ...myOrientationsFilters, status: { $nin: historyStatus } }),
+          history: await this.findWithFilters({ ...myOrientationsFilters, status: { $in: historyStatus } }),
+        },
+        todoOrientations: {
+          inProgress: await this.findWithFilters({ ...todoOrientationsFilters, status: { $nin: historyStatus } }),
+          history: await this.findWithFilters({ ...todoOrientationsFilters, status: { $in: historyStatus } }),
+        },
       };
     } catch (e) {
       this.logger.error(`Error fetching orientations with details: ${e.message}`);
-- 
GitLab