From 64d05ad0d8b0f215cb63e8cd39329ea5e98d75c2 Mon Sep 17 00:00:00 2001 From: gcarron <gcarron@grandlyon.com> Date: Mon, 18 Jan 2021 14:29:22 +0100 Subject: [PATCH] Add fluidcondition verification feature --- src/db/challengeEntity.json | 2 +- src/db/explorationEntity.json | 19 +++++++------ src/models/exploration.model.ts | 2 +- src/services/challenge.service.ts | 36 ++++++++++++++++++++++-- src/services/exploration.service.ts | 7 ++++- test/__mocks__/explorationData.mock.ts | 24 ++++++++-------- test/__mocks__/userChallengeData.mock.ts | 4 +-- 7 files changed, 67 insertions(+), 27 deletions(-) diff --git a/src/db/challengeEntity.json b/src/db/challengeEntity.json index f812b7316..05f66909f 100644 --- a/src/db/challengeEntity.json +++ b/src/db/challengeEntity.json @@ -33,7 +33,7 @@ }, "exploration": { "data": { - "_id": "EXPLORATION002", + "_id": "EXPLORATION006", "_type": "com.grandlyon.ecolyo.exploration" } } diff --git a/src/db/explorationEntity.json b/src/db/explorationEntity.json index a59528f92..f6274cab0 100644 --- a/src/db/explorationEntity.json +++ b/src/db/explorationEntity.json @@ -8,7 +8,8 @@ "date": null, "ecogesture_id": "0032", "fluid_condition": [], - "priority_by_condition": 1, + "isConditional": false, + "message_success": "Vous avez consulté l'écogeste \"Chat échaudé\"" }, { @@ -20,7 +21,8 @@ "date": null, "ecogesture_id": "", "fluid_condition": [], - "priority_by_condition": 1, + "isConditional": false, + "message_success": "Vous avez vu votre consommation à l'année" }, { @@ -32,7 +34,8 @@ "date": null, "ecogesture_id": "", "fluid_condition": [], - "priority_by_condition": 1, + "isConditional": false, + "message_success": "Vous avez répandu la bonne nouvelle" }, { @@ -44,7 +47,7 @@ "date": null, "ecogesture_id": "", "fluid_condition": [], - "priority_by_condition": 1, + "isConditional": false, "message_success": "Vous vous êtes connecté 3 fois à Ecolyo" }, { @@ -56,7 +59,7 @@ "date": null, "ecogesture_id": "", "fluid_condition": [], - "priority_by_condition": 1, + "isConditional": false, "message_success": "Vous avez envoyé un feedback" }, { @@ -68,7 +71,7 @@ "date": null, "ecogesture_id": "", "fluid_condition": [0], - "priority_by_condition": 1, + "isConditional": true, "message_success": "Vous avez dévérrouillé les données électricité à la demi-heure" }, { @@ -80,7 +83,7 @@ "date": null, "ecogesture_id": "0099", "fluid_condition": [], - "priority_by_condition": 2, + "isConditional": true, "message_success": "Vous avez consulté l'écogeste \"Lord Kelvin\"" }, { @@ -92,7 +95,7 @@ "date": null, "ecogesture_id": "", "fluid_condition": [], - "priority_by_condition": 1, + "isConditional": false, "message_success": "Vous avez placé l'appli Ecolyo en favoris" } ] diff --git a/src/models/exploration.model.ts b/src/models/exploration.model.ts index d681c9970..35346f6fa 100644 --- a/src/models/exploration.model.ts +++ b/src/models/exploration.model.ts @@ -14,7 +14,7 @@ export interface ExplorationEntity { date: string | null ecogesture_id: string fluid_condition: FluidType[] - priority_by_condition: number + isConditional: boolean message_success: string } diff --git a/src/services/challenge.service.ts b/src/services/challenge.service.ts index bd7ad9839..00d94cd15 100644 --- a/src/services/challenge.service.ts +++ b/src/services/challenge.service.ts @@ -30,6 +30,8 @@ import ConsumptionDataManager from 'services/consumption.service' import { getRelationship } from 'utils/utils' import { getLagDays } from 'utils/date' import ExplorationService from './exploration.service' +import { FluidState, FluidType } from 'enum/fluid.enum' +import FluidService from './fluid.service' export default class ChallengeService { private readonly _client: Client @@ -191,14 +193,44 @@ export default class ChallengeService { }) buildList = this.unLockCurrentUserChallenge(buildList) } else if (challengeEntityList.length > 0 && userChallengeList.length > 0) { - challengeEntityList.forEach(challenge => { + challengeEntityList.forEach(async challenge => { const userChallengeIndex = userChallengeList.findIndex( entity => entity.id === challenge.id ) if (userChallengeIndex >= 0) { - const userChallenge: UserChallenge = + let userChallenge: UserChallenge = userChallengeList[userChallengeIndex] + console.log('index', userChallenge) + if (userChallenge.exploration.isConditional) { + const fluidService = new FluidService(this._client) + const fluidStatus = await fluidService.getFluidStatus() + console.log('status', status) + const fluidCondition: FluidType[] = + userChallenge.exploration.fluid_condition + //check if the fluid is connected + let isConditionValid = false + if ( + fluidStatus[fluidCondition[0]].status !== + FluidState.KONNECTOR_NOT_FOUND && + fluidStatus[fluidCondition[0]].status !== FluidState.NOT_CONNECTED + ) + isConditionValid = true + if (isConditionValid === false) { + const newExploId = `${userChallenge.exploration.id}_0` + const newExploEntity = await explorationService.getExplorationEntityById( + newExploId + ) + const newUserExplo: UserExploration = explorationService.parseExplorationEntityToUserExploration( + newExploEntity + ) + userChallenge = { + ...userChallenge, + exploration: newUserExplo, + } + } + } buildList.push(userChallenge) + console.log('buildList', buildList) } else { const duelEntityRelation: Relation = getRelationship( challenge, diff --git a/src/services/exploration.service.ts b/src/services/exploration.service.ts index 970812cdd..3818fecc1 100644 --- a/src/services/exploration.service.ts +++ b/src/services/exploration.service.ts @@ -8,6 +8,7 @@ import { } from 'enum/userExploration.enum' import { DateTime } from 'luxon' import { ExplorationEntity, UserChallenge, UserExploration } from 'models' +import { explorationEntity } from '../../test/__mocks__/explorationData.mock' import ChallengeService from './challenge.service' export default class ExplorationService { @@ -84,7 +85,7 @@ export default class ExplorationService { date: null, ecogesture_id: '', fluid_condition: [], - priority_by_condition: 1, + isConditional: false, progress: 0, message_success: '', } @@ -92,14 +93,17 @@ export default class ExplorationService { const explorationEntityIndex = explorationEntityList.findIndex( entity => entity.id === searchId ) + console.log('eeeee', explorationEntityIndex) if (explorationEntityIndex >= 0) { const explorationEntity: ExplorationEntity = explorationEntityList[explorationEntityIndex] + console.log('exploEntity', explorationEntity) exploration = this.parseExplorationEntityToUserExploration( explorationEntity ) } } + console.log('exploration', exploration) return exploration } @@ -118,6 +122,7 @@ export default class ExplorationService { keepLocalTime: true, }), } + console.log('parse', userExploration) return userExploration } diff --git a/test/__mocks__/explorationData.mock.ts b/test/__mocks__/explorationData.mock.ts index f1dfc5f29..48a717858 100644 --- a/test/__mocks__/explorationData.mock.ts +++ b/test/__mocks__/explorationData.mock.ts @@ -14,7 +14,7 @@ export const explorationEntity: ExplorationEntity = { date: null, ecogesture_id: '', fluid_condition: [], - priority_by_condition: 1, + isConditional: false, message_success: 'Vous vous êtes connecté 3 fois à Ecolyo', } export const explorationDefault: UserExploration = { @@ -26,7 +26,7 @@ export const explorationDefault: UserExploration = { date: null, ecogesture_id: '', fluid_condition: [], - priority_by_condition: 1, + isConditional: false, progress: 0, message_success: '', } @@ -41,7 +41,7 @@ export const allExplorationEntities: ExplorationEntity[] = [ date: null, ecogesture_id: '', fluid_condition: [], - priority_by_condition: 1, + isConditional: false, message_success: 'Vous vous êtes connecté 3 fois à Ecolyo', }, { @@ -53,7 +53,7 @@ export const allExplorationEntities: ExplorationEntity[] = [ date: null, ecogesture_id: '0032', fluid_condition: [], - priority_by_condition: 1, + isConditional: false, message_success: 'Contrôle du nuage', }, { @@ -65,7 +65,7 @@ export const allExplorationEntities: ExplorationEntity[] = [ date: null, ecogesture_id: '', fluid_condition: [], - priority_by_condition: 1, + isConditional: false, message_success: 'Vous avez répandu la bonne nouvelle', }, { @@ -77,7 +77,7 @@ export const allExplorationEntities: ExplorationEntity[] = [ date: null, ecogesture_id: '', fluid_condition: [], - priority_by_condition: 1, + isConditional: false, message_success: 'Vous êtes allé voir combien vous avez consommez le 24 décembre 2020', }, @@ -90,7 +90,7 @@ export const allExplorationEntities: ExplorationEntity[] = [ date: null, ecogesture_id: '', fluid_condition: [], - priority_by_condition: 1, + isConditional: false, message_success: 'Vous nous avez envoyé un feedback', }, { @@ -102,7 +102,7 @@ export const allExplorationEntities: ExplorationEntity[] = [ date: null, ecogesture_id: '', fluid_condition: [0], - priority_by_condition: 1, + isConditional: false, message_success: 'Vous avez déverouillé les données électricité à la demi-heure', }, @@ -115,7 +115,7 @@ export const allExplorationEntities: ExplorationEntity[] = [ date: null, ecogesture_id: '', fluid_condition: [], - priority_by_condition: 1, + isConditional: false, message_success: "Vous avez mis l'appli Ecolyo en favoris", }, ] @@ -129,7 +129,7 @@ export const UserExplorationStarted: UserExploration = { date: null, ecogesture_id: '', fluid_condition: [], - priority_by_condition: 1, + isConditional: false, progress: 0, message_success: 'Vous vous êtes connecté 3 fois à Ecolyo', } @@ -142,7 +142,7 @@ export const UserExplorationDone: UserExploration = { date: null, ecogesture_id: '', fluid_condition: [], - priority_by_condition: 1, + isConditional: false, progress: 5, message_success: 'Vous vous êtes connecté 3 fois à Ecolyo', } @@ -156,7 +156,7 @@ export const UserExplorationUnlocked: UserExploration = { date: null, ecogesture_id: '', fluid_condition: [], - priority_by_condition: 1, + isConditional: false, progress: 0, message_success: 'Vous vous êtes connecté 3 fois à Ecolyo', } diff --git a/test/__mocks__/userChallengeData.mock.ts b/test/__mocks__/userChallengeData.mock.ts index 2f8d125a8..2444f0b6f 100644 --- a/test/__mocks__/userChallengeData.mock.ts +++ b/test/__mocks__/userChallengeData.mock.ts @@ -222,7 +222,7 @@ export const userChallengeExplo1OnGoing: UserChallenge = { date: null, ecogesture_id: '', fluid_condition: [], - priority_by_condition: 1, + isConditional: false, progress: 1, }, } @@ -252,7 +252,7 @@ export const userChallengeExplo2OnGoing: UserChallenge = { date: null, ecogesture_id: '0032', fluid_condition: [], - priority_by_condition: 1, + isConditional: false, progress: 0, }, } -- GitLab