From 05899eae3715c2b27c38b1290390f99e87a9bcab Mon Sep 17 00:00:00 2001 From: Yoan VALLET <ext.sopra.yvallet@grandlyon.com> Date: Tue, 8 Dec 2020 17:08:03 +0100 Subject: [PATCH] feat: clean code --- src/components/Season/SeasonCardOnGoing.tsx | 11 +---------- src/components/Season/SeasonView.tsx | 4 ++-- src/models/boss.model.ts | 10 +++++----- src/models/index.ts | 1 - src/models/season.model.ts | 1 - src/services/boss.service.ts | 12 +++++------- src/services/initialization.service.ts | 6 ++---- 7 files changed, 15 insertions(+), 30 deletions(-) diff --git a/src/components/Season/SeasonCardOnGoing.tsx b/src/components/Season/SeasonCardOnGoing.tsx index 9e68d0cad..abe7c9e69 100644 --- a/src/components/Season/SeasonCardOnGoing.tsx +++ b/src/components/Season/SeasonCardOnGoing.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useEffect, useState } from 'react' +import React, { useEffect, useState } from 'react' import { Client, useClient } from 'cozy-client' import { useI18n } from 'cozy-ui/transpiled/react/I18n' import { useDispatch } from 'react-redux' @@ -73,15 +73,6 @@ const SeasonCardOnGoing: React.FC<SeasonCardOnGoingProps> = ({ icon ? setSeasonIcon(icon) : setSeasonIcon(defaultSeasonIcon) }) }, [userSeason]) - const resetProgress = useCallback(async () => { - const seasonService = new SeasonService(client) - userSeason.progress = 0 - const updatedSeason = await seasonService.updateUserSeason( - userSeason, - UpdateUserSeason.SEASON - ) - dispatch(updateUserSeasonList(updatedSeason)) - }, [client, dispatch, userSeason]) //TODO change icon and stars when finished return ( diff --git a/src/components/Season/SeasonView.tsx b/src/components/Season/SeasonView.tsx index 7a6a544d9..1855c9b21 100644 --- a/src/components/Season/SeasonView.tsx +++ b/src/components/Season/SeasonView.tsx @@ -10,7 +10,7 @@ import StyledIconbutton from 'components/CommonKit/IconButton/StyledIconButton' import LeftArrowIcon from 'assets/icons/ico/left-arrow.svg' import RightArrowIcon from 'assets/icons/ico/right-arrow.svg' import { UserSeasonState } from 'enum/userSeason.enum' -import { indexOf } from 'lodash' +import { UserSeason } from 'models' const SeasonView: React.FC = () => { const { userSeasonList } = useSelector((state: EcolyoState) => state.season) @@ -97,7 +97,7 @@ const SeasonView: React.FC = () => { } useEffect(() => { - userSeasonList.map((season, i) => { + userSeasonList.forEach((season: UserSeason, i: number) => { if ( season.state === UserSeasonState.UNLOCKED || season.state === UserSeasonState.ONGOING diff --git a/src/models/boss.model.ts b/src/models/boss.model.ts index 2d0fda0be..c8cb9759b 100644 --- a/src/models/boss.model.ts +++ b/src/models/boss.model.ts @@ -1,5 +1,7 @@ import { DateTime, Duration } from 'luxon' import { UserBossState } from 'enum/userBoss.enum' +import { FluidType } from 'enum/fluid.enum' +import { Dataload } from './dataload.model' export interface BossEntity { id: string @@ -7,13 +9,11 @@ export interface BossEntity { description: string duration: Duration } -export interface Boss { - id: string - userConsumption: number - title: string - description: string +export interface Boss extends BossEntity { duration: Duration threshold: number state: UserBossState startDate: DateTime | null + fluidTypes: FluidType[] + userConsumption: number } diff --git a/src/models/index.ts b/src/models/index.ts index ab6b25d84..2ecb88ede 100644 --- a/src/models/index.ts +++ b/src/models/index.ts @@ -14,7 +14,6 @@ export * from './profile.model' export * from './relation.model' export * from './report.model' export * from './season.model' -export * from './boss.model' export * from './timePeriod.model' export * from './trigger.model' export * from './userInstanceSettings.model' diff --git a/src/models/season.model.ts b/src/models/season.model.ts index cc12d10cf..64491431d 100644 --- a/src/models/season.model.ts +++ b/src/models/season.model.ts @@ -15,7 +15,6 @@ export interface SeasonEntity { quizType: string } -// Entity of User Season export interface UserSeasonEntity { id: string title: string diff --git a/src/services/boss.service.ts b/src/services/boss.service.ts index 6ea0dff8e..b10a5e28c 100644 --- a/src/services/boss.service.ts +++ b/src/services/boss.service.ts @@ -19,13 +19,11 @@ export default class BossService { } private setValidPeriod( - seasonFluidStatus: FluidStatus[], + fluidStatus: FluidStatus[], userBoss: Boss ): TimePeriod { - // for each to know which fluid has the most ancient valid data - // la date la plus ancienne = end, end - duration.day = start let lastDate: DateTime = DateTime.local() - seasonFluidStatus.forEach(fluid => { + fluidStatus.forEach(fluid => { if (fluid.lastDataDate !== null && fluid.lastDataDate < lastDate) { lastDate = fluid.lastDataDate } @@ -41,7 +39,6 @@ export default class BossService { } public async getConsumptionInfo(userBoss: Boss): Promise<number> { - // Get Max energy const fluidService = new FluidService(this._client) const consumptionService = new ConsumptionService(this._client) const performanceService = new PerformanceService() @@ -132,7 +129,7 @@ export default class BossService { return updatedUserBoss } - public formatToUserBoss(boss: BossEntity): Boss { + public parseBossEntityToBoss(boss: BossEntity): Boss { const userBoss: Boss = { id: boss.id, title: boss.title, @@ -141,6 +138,7 @@ export default class BossService { threshold: 0, state: UserBossState.LOCKED, startDate: null, + fluidTypes: [], userConsumption: 0, } return userBoss @@ -177,7 +175,7 @@ export default class BossService { ) if (bossEntityIndex >= 0) { const bossEntity: BossEntity = bossEntityList[bossEntityIndex] - boss = this.formatToUserBoss(bossEntity) + boss = this.parseBossEntityToBoss(bossEntity) } } return boss diff --git a/src/services/initialization.service.ts b/src/services/initialization.service.ts index 003d53319..d10d6af17 100644 --- a/src/services/initialization.service.ts +++ b/src/services/initialization.service.ts @@ -19,7 +19,7 @@ import { } from 'doctypes' import { FluidType } from 'enum/fluid.enum' -import { FluidStatus, Profile } from 'models' +import { FluidStatus, Profile, UserSeason } from 'models' import EcogestureService from 'services/ecogesture.service' import SeasonService from 'services/season.service' @@ -33,14 +33,12 @@ import KonnectorStatusService from 'services/konnectorStatus.service' import KonnectorService from 'services/konnector.service' import AccountService from 'services/account.service' import FluidService from 'services/fluid.service' +import BossService from 'services/boss.service' import { hashFile } from 'utils/hash' import { getActualReportDate } from 'utils/date' import { TimeStep } from 'enum/timeStep.enum' -import { UserSeason } from 'models/season.model' -import BossService from './boss.service' - export default class InitializationService { private readonly _client: Client -- GitLab