diff --git a/src/components/Action/ActionOnGoing/ActionOnGoing.tsx b/src/components/Action/ActionOnGoing/ActionOnGoing.tsx index d6e36fe48ae9a4b8bf74a0f70a781d28018d2842..755b127c368c3f32993d86579d5d85b2bdad98fa 100644 --- a/src/components/Action/ActionOnGoing/ActionOnGoing.tsx +++ b/src/components/Action/ActionOnGoing/ActionOnGoing.tsx @@ -3,7 +3,6 @@ import ClockIcon from 'assets/icons/visu/action/duration-clock.svg' import StyledIcon from 'components/CommonKit/Icon/StyledIcon' import EcogestureModal from 'components/Ecogesture/EcogestureModal/EcogestureModal' import { useI18n } from 'cozy-ui/transpiled/react/I18n' -import { DateTime } from 'luxon' import { UserAction } from 'models' import React, { useCallback, useState } from 'react' import './actionOnGoing.scss' @@ -51,9 +50,9 @@ const ActionOnGoing = ({ userAction }: { userAction: UserAction }) => { const getResultDate = useCallback(() => { if (userAction.startDate && userAction.ecogesture) { - const startDate: DateTime = userAction.startDate - const durationInHours: number = userAction.ecogesture.actionDuration * 24 - const resultDate: string = startDate + const startDate = userAction.startDate + const durationInHours = userAction.ecogesture.actionDuration * 24 + const resultDate = startDate .plus({ hours: durationInHours }) .setLocale('fr') .toFormat('cccc dd LLLL') diff --git a/src/components/Analysis/ElecHalfHourMonthlyAnalysis/ElecHalfHourChart.tsx b/src/components/Analysis/ElecHalfHourMonthlyAnalysis/ElecHalfHourChart.tsx index 51fb203428079b883f30e49696061b6077779e78..fab3716510634d8527e9df64c9eb9cc202fc7040 100644 --- a/src/components/Analysis/ElecHalfHourMonthlyAnalysis/ElecHalfHourChart.tsx +++ b/src/components/Analysis/ElecHalfHourMonthlyAnalysis/ElecHalfHourChart.tsx @@ -30,11 +30,7 @@ const ElecHalfHourChart = ({ dataLoad, isWeekend }: ElecHalfHourChartProps) => { } const xScale: ScaleBand<string> = scaleBand() - .domain( - dataLoad.map((d: Dataload) => - d.date.toLocaleString(DateTime.DATETIME_SHORT) - ) - ) + .domain(dataLoad.map(d => d.date.toLocaleString(DateTime.DATETIME_SHORT))) .range([0, getContentWidth()]) .padding(0.1) diff --git a/src/components/Analysis/ProfileComparator/ProfileComparatorRow.tsx b/src/components/Analysis/ProfileComparator/ProfileComparatorRow.tsx index 0ca7f23ce6769cb77b98a8925d3425a51c85d149..a30baad9ead17bfdf0a994f6059546879e569e7b 100644 --- a/src/components/Analysis/ProfileComparator/ProfileComparatorRow.tsx +++ b/src/components/Analysis/ProfileComparator/ProfileComparatorRow.tsx @@ -30,7 +30,7 @@ const ProfileComparatorRow = ({ noData, }: ProfileComparatorRowProps) => { const { t } = useI18n() - const converterService: ConverterService = new ConverterService() + const converterService = new ConverterService() const maxPriceConsumption = Math.max( userPriceConsumption, homePriceConsumption diff --git a/src/components/Charts/AxisBottom.tsx b/src/components/Charts/AxisBottom.tsx index 35dbdfe9e9d85202d7346a2c91b96f9ca9adce55..988ea723d00bbf98750b5bbcaff3a3c89eb44bd4 100644 --- a/src/components/Charts/AxisBottom.tsx +++ b/src/components/Charts/AxisBottom.tsx @@ -156,7 +156,7 @@ const AxisBottom = ({ const { selectedDate } = useAppSelector(state => state.ecolyo.chart) const dashArray = `${height / 30} ${height / 30}` const dateChartService = new DateChartService() - const displayAllDays: boolean = isDuel && data.length <= 15 + const displayAllDays = isDuel && data.length <= 15 return ( <g className="axis x" diff --git a/src/components/ConsumptionVisualizer/ConsumptionVisualizer.tsx b/src/components/ConsumptionVisualizer/ConsumptionVisualizer.tsx index 34f248ca6ae02260da6a3adcda82c58cb9795173..fcdbc54ad617e3e44dd79df554a8cbcd10236b9f 100644 --- a/src/components/ConsumptionVisualizer/ConsumptionVisualizer.tsx +++ b/src/components/ConsumptionVisualizer/ConsumptionVisualizer.tsx @@ -28,7 +28,7 @@ const ConsumptionVisualizer = ({ const lastDays: DateTime[] = [] if (fluidType === FluidType.MULTIFLUID) { for (const _fluidType of fluidTypes) { - const date: DateTime | null = fluidStatus[_fluidType].lastDataDate + const date = fluidStatus[_fluidType].lastDataDate if (date) { lastDays.push(date) } diff --git a/src/components/Duel/DuelChart/DuelBar.tsx b/src/components/Duel/DuelChart/DuelBar.tsx index d90ebddcefa7d14d1763717c7768601a6f7bb6e9..0adb9717ae2201a8508d037fba6bfd2a6ddc2bff 100644 --- a/src/components/Duel/DuelChart/DuelBar.tsx +++ b/src/components/Duel/DuelChart/DuelBar.tsx @@ -35,9 +35,7 @@ const DuelBar = ({ marginBottom = 50, }: BarChartProps) => { const { currentDataload } = useAppSelector(state => state.ecolyo.challenge) - const dataload: Dataload[] = finishedDataLoad - ? finishedDataLoad - : currentDataload + const dataload = finishedDataLoad ? finishedDataLoad : currentDataload const getContentWidth = () => { return width - marginLeft - marginRight } @@ -47,15 +45,11 @@ const DuelBar = ({ } const getMaxLoad = () => { - return dataload ? Math.max(...dataload.map((d: Dataload) => d.value)) : 0 + return dataload ? Math.max(...dataload.map(d => d.value)) : 0 } const xScale: ScaleBand<string> = scaleBand() - .domain( - dataload.map((d: Dataload) => - d.date.toLocaleString(DateTime.DATETIME_SHORT) - ) - ) + .domain(dataload.map(d => d.date.toLocaleString(DateTime.DATETIME_SHORT))) .range([0, getContentWidth()]) .padding(0.2) diff --git a/src/components/FluidChart/FluidChartSlide.tsx b/src/components/FluidChart/FluidChartSlide.tsx index 7bece51bb3f33317a86fd1c31a906ab00d7dc439..a734dc2662104f9685466573e1f98df268398d4e 100644 --- a/src/components/FluidChart/FluidChartSlide.tsx +++ b/src/components/FluidChart/FluidChartSlide.tsx @@ -74,7 +74,7 @@ const FluidChartSlide = ({ ]) const consumptionService = new ConsumptionService(client) const isMulti = fluidType === FluidType.MULTIFLUID - const fluidTypeArray: FluidType[] = isMulti ? fluidTypes : [fluidType] + const fluidTypeArray = isMulti ? fluidTypes : [fluidType] const graphData = await consumptionService.getGraphData({ timePeriod, timeStep: currentTimeStep, diff --git a/src/components/FluidChart/TimeStepSelector/TimeStepSelector.tsx b/src/components/FluidChart/TimeStepSelector/TimeStepSelector.tsx index d05db4af3cd184efe03f575eb577e96ecbe7a532..baab2f8dbf196166425348c96ea5cd8fae24bbee 100644 --- a/src/components/FluidChart/TimeStepSelector/TimeStepSelector.tsx +++ b/src/components/FluidChart/TimeStepSelector/TimeStepSelector.tsx @@ -41,10 +41,7 @@ const TimeStepSelector = ({ fluidType }: { fluidType: FluidType }) => { dispatch(setCurrentTimeStep(TimeStep.WEEK)) } const handleChangeTimeStep = (targetTimestep: TimeStep) => { - const index: number = dateChartService.defineDateIndex( - targetTimestep, - selectedDate - ) + const index = dateChartService.defineDateIndex(targetTimestep, selectedDate) dispatch(setCurrentTimeStep(targetTimestep)) dispatch(setCurrentIndex(index)) } diff --git a/src/components/Hooks/useExploration.tsx b/src/components/Hooks/useExploration.tsx index 36e9be442f8063e69ed96c2197606b11e3d87ad4..df533231dde079eb02c17eace6b677f7e7cd1c17 100644 --- a/src/components/Hooks/useExploration.tsx +++ b/src/components/Hooks/useExploration.tsx @@ -1,6 +1,5 @@ import { useClient } from 'cozy-client' import { UserExplorationState } from 'enums' -import { UserExploration } from 'models' import { Dispatch, SetStateAction, useEffect, useState } from 'react' import ExplorationService from 'services/exploration.service' import { updateUserChallengeList } from 'store/challenge/challenge.slice' @@ -11,11 +10,9 @@ const useExploration = (): [string, Dispatch<SetStateAction<string>>] => { const client = useClient() const dispatch = useAppDispatch() const { currentChallenge } = useAppSelector(state => state.ecolyo.challenge) - const exploration: UserExploration | null = currentChallenge - ? currentChallenge.exploration - : null + const exploration = currentChallenge ? currentChallenge.exploration : null - const ecogestureId: string = exploration ? exploration.ecogesture_id : '' + const ecogestureId = exploration ? exploration.ecogesture_id : '' const [explorationID, setExplorationID] = useState<string>('') diff --git a/src/components/Quiz/QuizBegin/QuizBegin.tsx b/src/components/Quiz/QuizBegin/QuizBegin.tsx index a6698e7879213511fb233f48970d71abfd6b9f32..b0e62b8ce57c1a221a2a0a4a42d15eace778508b 100644 --- a/src/components/Quiz/QuizBegin/QuizBegin.tsx +++ b/src/components/Quiz/QuizBegin/QuizBegin.tsx @@ -17,12 +17,11 @@ const QuizBegin = ({ userChallenge }: { userChallenge: UserChallenge }) => { const client = useClient() const dispatch = useAppDispatch() const launchQuiz = async () => { - const challengeService: ChallengeService = new ChallengeService(client) - const userChallengeUpdated: UserChallenge = - await challengeService.updateUserChallenge( - userChallenge, - UserChallengeUpdateFlag.QUIZ_START - ) + const challengeService = new ChallengeService(client) + const userChallengeUpdated = await challengeService.updateUserChallenge( + userChallenge, + UserChallengeUpdateFlag.QUIZ_START + ) dispatch(updateUserChallengeList(userChallengeUpdated)) } diff --git a/src/migrations/migration.data.ts b/src/migrations/migration.data.ts index 650fce8de0a109e7405dd8dbf12e19fa152e8b0a..a5ec647e75ca998ecccff3f7c10d51b12689cfff 100644 --- a/src/migrations/migration.data.ts +++ b/src/migrations/migration.data.ts @@ -258,13 +258,13 @@ export const migrations: Migration[] = [ docTypes: PROFILETYPE_DOCTYPE, run: async (_client: Client, docs: any[]): Promise<any[]> => { function checkDate(d1: string, d2: string) { - const dtd1: DateTime = DateTime.fromISO(d1) - const dtd2: DateTime = DateTime.fromISO(d2) + const dtd1 = DateTime.fromISO(d1) + const dtd2 = DateTime.fromISO(d2) return dtd1.year === dtd2.year && dtd1.month === dtd2.month } for (let i = 0; i < docs.length; i++) { - const dtStartOfMonth: DateTime = DateTime.fromISO(docs[i].updateDate) + const dtStartOfMonth = DateTime.fromISO(docs[i].updateDate) docs[i].updateDate = dtStartOfMonth .setZone('utc', { keepLocalTime: true, diff --git a/src/migrations/migration.service.ts b/src/migrations/migration.service.ts index 757f9644727b3f045dcfa578f784c4c61432445b..0e7f051b019832ff0d8847e47bba311d58bd82cb 100644 --- a/src/migrations/migration.service.ts +++ b/src/migrations/migration.service.ts @@ -1,5 +1,5 @@ import * as Sentry from '@sentry/react' -import { Client, Q, QueryDefinition, QueryResult } from 'cozy-client' +import { Client, Q, QueryResult } from 'cozy-client' import { SCHEMAS_DOCTYPE } from 'doctypes' import { InitStepsErrors, ReleaseNotes, Schema } from 'models' import { logDuration } from 'utils/duration' @@ -9,7 +9,7 @@ import { MIGRATION_RESULT_COMPLETE, MIGRATION_RESULT_FAILED, } from './migration.data' -import { Migration, MigrationResult } from './migration.type' +import { Migration } from './migration.type' export class MigrationService { private readonly _client: Client @@ -31,7 +31,7 @@ export class MigrationService { * @returns Promise<number> Version number of schema */ public async currentSchemaVersion(_client: Client): Promise<number> { - const query: QueryDefinition = Q(SCHEMAS_DOCTYPE) + const query = Q(SCHEMAS_DOCTYPE) const data: QueryResult<Schema[]> = await _client.query(query.limitBy(1)) return data?.data[0]?.version || 0 } @@ -61,10 +61,7 @@ export class MigrationService { for (const migration of migrationsToRun) { // First attempt - const migrationResult: MigrationResult = await migrate( - migration, - this._client - ) + const migrationResult = await migrate(migration, this._client) logApp.info(migrationLog(migration, migrationResult)) if (migrationResult.type === MIGRATION_RESULT_FAILED) { diff --git a/src/migrations/migration.ts b/src/migrations/migration.ts index 2129af07325c78f34319913811a8a5ea7afd928c..05fa3685fc0ba9629f125248b70630e22fbf8787 100644 --- a/src/migrations/migration.ts +++ b/src/migrations/migration.ts @@ -25,7 +25,7 @@ function migrationNoop(): MigrationResult { * @returns Promise<number> Version number of schema */ async function currentSchemaVersion(_client: Client): Promise<number> { - const query: QueryDefinition = Q(SCHEMAS_DOCTYPE) + const query = Q(SCHEMAS_DOCTYPE) const data: QueryResult<Schema[]> = await _client.query(query.limitBy(1)) return data.data[0].version } @@ -63,7 +63,7 @@ async function updateSchemaVersion( targetSchemaVersion: number ): Promise<void> { logApp.info('[Migration] Update schema version') - const query: QueryDefinition = Q(SCHEMAS_DOCTYPE) + const query = Q(SCHEMAS_DOCTYPE) const data: QueryResult<Schema[]> = await _client.query(query.limitBy(1)) const doc = data.data[0] doc.version = targetSchemaVersion @@ -76,7 +76,7 @@ async function updateSchemaVersion( */ async function save(_client: Client, docs: any[]): Promise<MigrationResult> { logApp.info('[Migration] Saving docs...') - const migrationResult: MigrationResult = migrationNoop() + const migrationResult = migrationNoop() if (docs.length) { logApp.info('[Migration] Saving docs...') @@ -104,7 +104,7 @@ async function save(_client: Client, docs: any[]): Promise<MigrationResult> { * @returns Promise<number> Version number of schema */ const schemaExist = async (_client: Client): Promise<boolean> => { - const query: QueryDefinition = Q(SCHEMAS_DOCTYPE) + const query = Q(SCHEMAS_DOCTYPE) const data: QueryResult<Schema[]> = await _client.query(query.limitBy(1)) return data.data.length > 0 ? true : false } @@ -141,7 +141,7 @@ export async function migrate( } else { let result: MigrationResult try { - const docToUpdate: any[] = await getDocs( + const docToUpdate = await getDocs( _client, migration.docTypes, migration.queryOptions diff --git a/src/services/account.service.ts b/src/services/account.service.ts index 3f3c782df013c3a84d670bb751526369e09dd119..412b0955e2d8c2aeb8e0cf4c349ecf94c863bf80 100644 --- a/src/services/account.service.ts +++ b/src/services/account.service.ts @@ -1,6 +1,6 @@ /* eslint-disable camelcase */ import * as Sentry from '@sentry/react' -import { Client, Q, QueryDefinition, QueryResult } from 'cozy-client' +import { Client, Q, QueryResult } from 'cozy-client' import { createAccount, deleteAccount, @@ -55,7 +55,7 @@ export default class AccountService { public async getAccountByType(type: string): Promise<Account | null> { try { - const query: QueryDefinition = Q(ACCOUNTS_DOCTYPE).where({ + const query = Q(ACCOUNTS_DOCTYPE).where({ account_type: type, }) // .indexFields(['account_type']) @@ -70,7 +70,7 @@ export default class AccountService { ) ) // Keep the accountId which have the older trigger - let olderDate: DateTime = DateTime.now() + let olderDate = DateTime.now() let olderAccountId: string | null = null for (const _trigger of triggers) { if ( @@ -86,7 +86,7 @@ export default class AccountService { } } // Retrieve the accountId and return it - const filteredAccounts: Account[] = accounts.filter( + const filteredAccounts = accounts.filter( _account => _account._id === olderAccountId ) return filteredAccounts[0] ? filteredAccounts[0] : null @@ -104,7 +104,7 @@ export default class AccountService { public async getAccountsByType(type: string): Promise<Account[]> { try { - const query: QueryDefinition = Q(ACCOUNTS_DOCTYPE).where({ + const query = Q(ACCOUNTS_DOCTYPE).where({ account_type: type, }) // .indexFields(['account_type']) @@ -147,7 +147,7 @@ export default class AccountService { } public async createIndexAccount(): Promise<[]> { - const query: QueryDefinition = Q(ACCOUNTS_DOCTYPE) + const query = Q(ACCOUNTS_DOCTYPE) .where({ account_type: 'index' }) // .indexFields(['account_type']) .limitBy(1) diff --git a/src/services/action.service.ts b/src/services/action.service.ts index 644197d670f148d9f95189f18b40fdf3e03d2ec6..7e42a3e37a152a2cc000c478d99bd01e6d007136 100644 --- a/src/services/action.service.ts +++ b/src/services/action.service.ts @@ -27,10 +27,10 @@ export default class ActionService { * Get the list of available actions */ public async getAvailableActionList(): Promise<Ecogesture[]> { - const userChallenges: UserChallenge[] = + const userChallenges = await this._challengeService.getAllUserChallengeEntities() const ecogestures = await this._ecogestureService.getAllEcogestures() - const actionsListIds: string[] = ecogestures + const actionsListIds = ecogestures .filter(ecogesture => ecogesture.action === true) .map(action => action._id) @@ -165,10 +165,10 @@ export default class ActionService { return userAction } /** - * awaitNotificationAction + * Return userAction with updated state to UserActionState.NOTIFICATION * @returns {UserAction} updated user action */ - public awaitNotificationAction(userAction: UserAction): UserAction { + public setNotificationAction(userAction: UserAction): UserAction { const updatedUserAction: UserAction = { ...userAction, state: UserActionState.NOTIFICATION, @@ -196,16 +196,15 @@ export default class ActionService { currentChallenge.action.startDate && currentChallenge.action.ecogesture ) { - const startDate: DateTime = currentChallenge.action.startDate + const startDate = currentChallenge.action.startDate const duration = currentChallenge.action.ecogesture.actionDuration const progress = -startDate.startOf('day').diffNow('days').days if (progress >= duration) { const challengeService = new ChallengeService(this._client) - const userChallenge: UserChallenge = - await challengeService.updateUserChallenge( - currentChallenge, - UserChallengeUpdateFlag.ACTION_NOTIFICATION - ) + const userChallenge = await challengeService.updateUserChallenge( + currentChallenge, + UserChallengeUpdateFlag.ACTION_NOTIFICATION + ) return userChallenge } else return null } else return null diff --git a/src/services/challenge.service.ts b/src/services/challenge.service.ts index 1021f80b74141d705614f594603e2d645c37e245..fd8e7242b58d8a166140e971a13706755cbca0b1 100644 --- a/src/services/challenge.service.ts +++ b/src/services/challenge.service.ts @@ -1,10 +1,9 @@ import * as Sentry from '@sentry/react' -import { Client, Q, QueryDefinition, QueryResult } from 'cozy-client' +import { Client, Q, QueryResult } from 'cozy-client' import logger from 'cozy-logger' import { CHALLENGE_DOCTYPE, USERCHALLENGE_DOCTYPE } from 'doctypes' import { FluidState, - FluidType, TimeStep, UserActionState, UserChallengeState, @@ -157,7 +156,7 @@ export default class ChallengeService { fluidStatus: FluidStatus[] ): Promise<boolean> { let isValid = false - const fluidCondition: FluidType[] = exploration.fluid_condition + const fluidCondition = exploration.fluid_condition // check if the fluid is connected if ( fluidStatus[fluidCondition[0]].status !== @@ -176,9 +175,9 @@ export default class ChallengeService { public async getRelationEntities( challenge: ChallengeEntity ): Promise<RelationEntitiesObject> { - const duelEntityRelation: Relation = getRelationship(challenge, 'duel') - const quizEntityRelation: Relation = getRelationship(challenge, 'quiz') - const explorationEntityRelation: Relation[] = getRelationshipHasMany( + const duelEntityRelation = getRelationship(challenge, 'duel') + const quizEntityRelation = getRelationship(challenge, 'quiz') + const explorationEntityRelation = getRelationshipHasMany( challenge, 'exploration' ) @@ -244,7 +243,7 @@ export default class ChallengeService { ): Promise<UserChallenge[]> { const explorationService = new ExplorationService(this._client) for (const explorationRelation of explorationEntityRelation) { - const exploration: UserExploration = + const exploration = explorationService.getUserExplorationFromExplorationEntities( explorationEntities || [], explorationRelation._id @@ -282,7 +281,7 @@ export default class ChallengeService { for (const relation of relationsArray.data) { const newExploEntity = await explorationService.getExplorationEntityById(relation._id) - const newUserExplo: UserExploration = + const newUserExplo = explorationService.parseExplorationEntityToUserExploration( newExploEntity ) @@ -317,15 +316,11 @@ export default class ChallengeService { public async buildUserChallengeList( fluidStatus: FluidStatus[] ): Promise<UserChallenge[]> { - const queryChallengeEntity: QueryDefinition = Q(CHALLENGE_DOCTYPE).include([ - 'duel', + const queryChallengeEntity = Q(CHALLENGE_DOCTYPE).include(['duel']) + const querySeasonEntityIncludeQuiz = Q(CHALLENGE_DOCTYPE).include(['quiz']) + const querySeasonEntityIncludeExploration = Q(CHALLENGE_DOCTYPE).include([ + 'exploration', ]) - const querySeasonEntityIncludeQuiz: QueryDefinition = Q( - CHALLENGE_DOCTYPE - ).include(['quiz']) - const querySeasonEntityIncludeExploration: QueryDefinition = Q( - CHALLENGE_DOCTYPE - ).include(['exploration']) const { data: challengeEntityList, included: duelEntities, @@ -340,8 +335,7 @@ export default class ChallengeService { }: QueryResult<ChallengeEntity[], QuizEntity[]> = await this._client.query( querySeasonEntityIncludeQuiz ) - const userChallengeList: UserChallenge[] = - await this.getAllUserChallengeEntities() + const userChallengeList = await this.getAllUserChallengeEntities() const duelService = new DuelService(this._client) const quizService = new QuizService(this._client) const explorationService = new ExplorationService(this._client) @@ -350,17 +344,17 @@ export default class ChallengeService { if (challengeEntityList.length > 0 && userChallengeList.length === 0) { for (const challenge of challengeEntityList) { const relationEntities = await this.getRelationEntities(challenge) - const duel: UserDuel = duelService.getDuelFromDuelEntities( + const duel = duelService.getDuelFromDuelEntities( duelEntities || [], relationEntities.duelEntityRelation._id ) - const quiz: UserQuiz = quizService.getUserQuizFromQuizEntities( + const quiz = quizService.getUserQuizFromQuizEntities( quizEntities || [], relationEntities.quizEntityRelation._id ) // Only one exploration relation if (relationEntities.explorationEntityRelation.length === 1) { - const exploration: UserExploration = + const exploration = explorationService.getUserExplorationFromExplorationEntities( explorationEntities || [], relationEntities.explorationEntityRelation[0]._id @@ -395,8 +389,7 @@ export default class ChallengeService { entity => entity.id === challenge.id ) if (userChallengeIndex >= 0) { - let userChallenge: UserChallenge = - userChallengeList[userChallengeIndex] + let userChallenge = userChallengeList[userChallengeIndex] userChallenge = await this.loopVerificationExplorationCondition( userChallenge, challengeEntityList, @@ -405,11 +398,11 @@ export default class ChallengeService { buildList.push(userChallenge) } else { const relationEntities = await this.getRelationEntities(challenge) - const duel: UserDuel = duelService.getDuelFromDuelEntities( + const duel = duelService.getDuelFromDuelEntities( duelEntities || [], relationEntities.duelEntityRelation._id ) - const quiz: UserQuiz = quizService.getUserQuizFromQuizEntities( + const quiz = quizService.getUserQuizFromQuizEntities( quizEntities || [], relationEntities.quizEntityRelation._id ) @@ -433,7 +426,7 @@ export default class ChallengeService { * Retrieve all ChallengeEntities */ public async getAllChallengeEntities(): Promise<ChallengeEntity[]> { - const query: QueryDefinition = Q(CHALLENGE_DOCTYPE) + const query = Q(CHALLENGE_DOCTYPE) const { data: challenges }: QueryResult<ChallengeEntity[]> = await this._client.query(query) return challenges @@ -466,12 +459,11 @@ export default class ChallengeService { * Retrieve all UserChallengeEntities */ public async getAllUserChallengeEntities(): Promise<UserChallenge[]> { - const query: QueryDefinition = Q(USERCHALLENGE_DOCTYPE) + const query = Q(USERCHALLENGE_DOCTYPE) const { data: userChallengeEntities }: QueryResult<UserChallengeEntity[]> = await this._client.query(query) - const userChallenges: UserChallenge[] = userChallengeEntities.map( - userChallengeEntity => - this.parseUserChallengeEntityToUserChallenge(userChallengeEntity) + const userChallenges = userChallengeEntities.map(userChallengeEntity => + this.parseUserChallengeEntityToUserChallenge(userChallengeEntity) ) return userChallenges } @@ -544,8 +536,9 @@ export default class ChallengeService { USERCHALLENGE_DOCTYPE, newChallenge ) - const updatedUserChallenge: UserChallenge = - this.parseUserChallengeEntityToUserChallenge(updatedUserChallengeEntity) + const updatedUserChallenge = this.parseUserChallengeEntityToUserChallenge( + updatedUserChallengeEntity + ) return updatedUserChallenge } catch (error) { const errorMessage = `Challenge service error on startUserChallenge: ${JSON.stringify( @@ -705,7 +698,7 @@ export default class ChallengeService { break case UserChallengeUpdateFlag.EXPLORATION_NOTIFICATION: updatedExploration = - await explorationService.awaitNotificationUserExploration( + await explorationService.setNotificationUserExploration( userChallenge.exploration ) updatedUserChallenge = { @@ -737,7 +730,7 @@ export default class ChallengeService { } break case UserChallengeUpdateFlag.ACTION_NOTIFICATION: - updatedAction = actionService.awaitNotificationAction( + updatedAction = actionService.setNotificationAction( userChallenge.action ) updatedUserChallenge = { @@ -764,7 +757,7 @@ export default class ChallengeService { try { const { data: userChallengeEntity }: QueryResult<UserChallengeEntity> = await this._client.save(updatedUserChallenge) - const result: UserChallenge = + const result = this.parseUserChallengeEntityToUserChallenge(userChallengeEntity) return result } catch (error) { @@ -857,7 +850,7 @@ export default class ChallengeService { dataloads[duration - 1].value !== -1 ) { isDone = true - dataloads.forEach((d: Dataload) => { + dataloads.forEach(d => { if ( d.value === -1 || (d.valueDetail && diff --git a/src/services/consumption.service.ts b/src/services/consumption.service.ts index 5875fa76455c098a7c078724b754444c42a9c44a..b9203bbb34d28a2f30ced50892a315bf0c789fb4 100644 --- a/src/services/consumption.service.ts +++ b/src/services/consumption.service.ts @@ -1,5 +1,5 @@ import * as Sentry from '@sentry/react' -import { Client, Q, QueryDefinition, QueryResult } from 'cozy-client' +import { Client, Q, QueryResult } from 'cozy-client' import { Doctype } from 'cozy-client/types/types' import logger from 'cozy-logger' import { ENEDIS_MINUTE_DOCTYPE } from 'doctypes' @@ -540,7 +540,7 @@ export default class ConsumptionDataManager { if (singleFluidCharts[0].chartData.actualData[i]) { // Define the aggregated state - const aggregatedDataloadState: DataloadState = + const aggregatedDataloadState = this._consumptionFormatterService.defineAggregatedDataloadState( tempAggregatedState ) @@ -560,7 +560,7 @@ export default class ConsumptionDataManager { singleFluidCharts[0].chartData.comparisonData[i] ) { // Define the aggregated state - const aggregatedComparisonDataloadState: DataloadState = + const aggregatedComparisonDataloadState = this._consumptionFormatterService.defineAggregatedDataloadState( tempComparisonAggregatedState ) @@ -586,7 +586,7 @@ export default class ConsumptionDataManager { client: Client, month: number ): Promise<DataloadEntity[]> { - const query: QueryDefinition = Q(ENEDIS_MINUTE_DOCTYPE) + const query = Q(ENEDIS_MINUTE_DOCTYPE) .where({ month: { $eq: month, @@ -605,7 +605,7 @@ export default class ConsumptionDataManager { public async getFirstDataDateFromDoctype( doctype: Doctype ): Promise<DataloadEntity[] | EnedisMonthlyAnalysisData[] | null> { - const query: QueryDefinition = Q(doctype) + const query = Q(doctype) .where({}) .indexFields(['year', 'month']) .sortBy([{ year: 'asc' }, { month: 'asc' }]) @@ -617,7 +617,7 @@ export default class ConsumptionDataManager { public async getFirstDataDateFromDoctypeWithPrice( doctype: Doctype ): Promise<DataloadEntity | null> { - const query: QueryDefinition = Q(doctype) + const query = Q(doctype) .where({ year: { $gt: null, diff --git a/src/services/consumptionFormatter.service.ts b/src/services/consumptionFormatter.service.ts index ba32ef5fa25bdf5259629bf0aca299a4b4a40f8e..92a7b44ebea7f21eca1de59c69d1d6b4f41532fd 100644 --- a/src/services/consumptionFormatter.service.ts +++ b/src/services/consumptionFormatter.service.ts @@ -28,7 +28,7 @@ export default class ConsumptionFormatterService { const filteredData = data.filter(dt => dateChartService.compareStepDate(timeStep, dt.date, parsingDate) ) - const newElement: Dataload = this.defineDataloadState( + const newElement = this.defineDataloadState( filteredData[0] ? filteredData[0] : { @@ -92,7 +92,7 @@ export default class ConsumptionFormatterService { return { ...data, state: DataloadState.EMPTY } } if (fluidStatus.lastDataDate && data.date > fluidStatus.lastDataDate) { - const isDataToCome: boolean = this.isDataToCome(data, fluidType) + const isDataToCome = this.isDataToCome(data, fluidType) return { ...data, state: isDataToCome ? DataloadState.COMING : DataloadState.MISSING, diff --git a/src/services/duel.service.ts b/src/services/duel.service.ts index 333383853d02a6e1b241a5ec3c4c6b2d0b698d0c..268257abdd20db4676fd139a9b5aac10aa0e2ecb 100644 --- a/src/services/duel.service.ts +++ b/src/services/duel.service.ts @@ -1,16 +1,10 @@ import * as Sentry from '@sentry/react' -import { Client, Q, QueryDefinition, QueryResult } from 'cozy-client' +import { Client, Q, QueryResult } from 'cozy-client' import logger from 'cozy-logger' import { DUEL_DOCTYPE } from 'doctypes' import { FluidState, FluidType, TimeStep, UserDuelState } from 'enums' import { DateTime, Duration } from 'luxon' -import { - DuelEntity, - FluidStatus, - PerformanceIndicator, - TimePeriod, - UserDuel, -} from 'models' +import { DuelEntity, FluidStatus, TimePeriod, UserDuel } from 'models' import logApp from 'utils/logger' import { getRoundFloat } from 'utils/math' import ConsumptionService from './consumption.service' @@ -35,7 +29,7 @@ export default class DuelService { fluidTypes: FluidType[], userDuel: UserDuel ): Promise<TimePeriod | false> { - let lastDate: DateTime = DateTime.local().setZone('utc', { + let lastDate = DateTime.local().setZone('utc', { keepLocalTime: true, }) fluidStatus.forEach(fluid => { @@ -108,7 +102,7 @@ export default class DuelService { * Retrieve all duel entities from db */ public async getAllDuelEntities(): Promise<DuelEntity[]> { - const query: QueryDefinition = Q(DUEL_DOCTYPE) + const query = Q(DUEL_DOCTYPE) const { data: duels }: QueryResult<DuelEntity[]> = await this._client.query(query) return duels @@ -119,9 +113,7 @@ export default class DuelService { * @param {string} duelId - ID of the searched duel */ public async getDuelEntityById(duelId: string): Promise<DuelEntity> { - const query: QueryDefinition = Q(DUEL_DOCTYPE) - .where({ _id: duelId }) - .limitBy(1) + const query = Q(DUEL_DOCTYPE).where({ _id: duelId }).limitBy(1) const { data }: QueryResult<DuelEntity[]> = await this._client.query(query) return data?.[0] } @@ -184,20 +176,16 @@ export default class DuelService { const performanceService = new PerformanceService() const fluidTypes = this.getFluidTypesFromStatus(fluidStatus) // Get last period with all days known - const period: TimePeriod | false = await this.getValidPeriod( - fluidStatus, - fluidTypes, - userDuel - ) + const period = await this.getValidPeriod(fluidStatus, fluidTypes, userDuel) if (period !== false) { // Fetch performance data - const fetchLastValidData: PerformanceIndicator[] = + const fetchLastValidData = await consumptionService.getPerformanceIndicators( period, TimeStep.DAY, fluidTypes ) - const maxData: PerformanceIndicator = + const maxData = performanceService.aggregatePerformanceIndicators(fetchLastValidData) // Set the threshold let updatedThreshold: number diff --git a/src/services/ecogesture.service.ts b/src/services/ecogesture.service.ts index ce07f6f1d934b81f63bd4de27142850714ce78cb..f6ad90a8aeb44676a840a6c4c736b1dcded923cc 100644 --- a/src/services/ecogesture.service.ts +++ b/src/services/ecogesture.service.ts @@ -1,5 +1,5 @@ import * as Sentry from '@sentry/react' -import { Client, Q, QueryDefinition, QueryResult } from 'cozy-client' +import { Client, Q, QueryResult } from 'cozy-client' import logger from 'cozy-logger' import ecogestureData from 'db/ecogestureData.json' import { ECOGESTURE_DOCTYPE } from 'doctypes' @@ -143,7 +143,7 @@ export default class EcogestureService { } public async getAllEcogestures(orderByID?: boolean): Promise<Ecogesture[]> { - let query: QueryDefinition = Q(ECOGESTURE_DOCTYPE) + let query = Q(ECOGESTURE_DOCTYPE) if (orderByID) { query = query @@ -173,7 +173,7 @@ export default class EcogestureService { * @param {string} ids - ecogestures ids */ public async getEcogesturesByIds(ids: string[]): Promise<Ecogesture[]> { - const query: QueryDefinition = Q(ECOGESTURE_DOCTYPE).getByIds(ids) + const query = Q(ECOGESTURE_DOCTYPE).getByIds(ids) const { data: ecogestures }: QueryResult<Ecogesture[]> = await this._client.query(query) return ecogestures diff --git a/src/services/enedisMonthlyAnalysisData.service.ts b/src/services/enedisMonthlyAnalysisData.service.ts index ef34a3e33c3aba8fdebc6a301bd6104864f6b34b..136d298dd6e685505947d142ebf526419c4e1387 100644 --- a/src/services/enedisMonthlyAnalysisData.service.ts +++ b/src/services/enedisMonthlyAnalysisData.service.ts @@ -1,5 +1,5 @@ import * as Sentry from '@sentry/react' -import { Client, Q, QueryDefinition, QueryResult } from 'cozy-client' +import { Client, Q, QueryResult } from 'cozy-client' import logger from 'cozy-logger' import { ENEDIS_MAXPOWER_DOCTYPE, @@ -39,7 +39,7 @@ export default class EnedisMonthlyAnalysisDataService { public async getLastEnedisMonthlyAnalysis(): Promise< EnedisMonthlyAnalysisData[] > { - const query: QueryDefinition = Q(ENEDIS_MONTHLY_ANALYSIS_DATA_DOCTYPE) + const query = Q(ENEDIS_MONTHLY_ANALYSIS_DATA_DOCTYPE) .where({}) .indexFields(['year', 'month']) .sortBy([{ year: 'desc' }, { month: 'desc' }]) @@ -101,7 +101,7 @@ export default class EnedisMonthlyAnalysisDataService { year: number, month: number ): Promise<EnedisMonthlyAnalysisData[]> { - const query: QueryDefinition = Q(ENEDIS_MONTHLY_ANALYSIS_DATA_DOCTYPE) + const query = Q(ENEDIS_MONTHLY_ANALYSIS_DATA_DOCTYPE) .where({ year: year, month: month }) .indexFields(['year', 'month']) .sortBy([{ year: 'desc' }, { month: 'desc' }]) @@ -143,7 +143,7 @@ export default class EnedisMonthlyAnalysisDataService { year: number, month: number ): Promise<MaxPowerEntity[]> { - const query: QueryDefinition = Q(ENEDIS_MAXPOWER_DOCTYPE) + const query = Q(ENEDIS_MAXPOWER_DOCTYPE) .where({ year: year, month: month }) .indexFields(['year', 'month']) .sortBy([{ year: 'desc' }, { month: 'desc' }]) @@ -183,7 +183,7 @@ export default class EnedisMonthlyAnalysisDataService { month ) - const monthQuery: QueryDefinition = Q(ENEDIS_MONTH_DOCTYPE) + const monthQuery = Q(ENEDIS_MONTH_DOCTYPE) .where({ year: year, month: month }) .indexFields(['year', 'month']) .limitBy(1) @@ -200,7 +200,7 @@ export default class EnedisMonthlyAnalysisDataService { for (const range of offPeakHours) { const { start, end } = range - const minuteQuery: QueryDefinition = Q(ENEDIS_MINUTE_DOCTYPE) + const minuteQuery = Q(ENEDIS_MINUTE_DOCTYPE) .where({ year: year, month: month, @@ -234,9 +234,7 @@ export default class EnedisMonthlyAnalysisDataService { // if the half-hour 23H30-0H00 is required, add the 0H00-0H30 consumption because the data is shifted in DB if (end.hour === 23 && end.minute === 59) { - const firstHalfHourQuery: QueryDefinition = Q( - ENEDIS_MINUTE_DOCTYPE - ).where({ + const firstHalfHourQuery = Q(ENEDIS_MINUTE_DOCTYPE).where({ year: year, month: month, hour: 0, @@ -249,7 +247,7 @@ export default class EnedisMonthlyAnalysisDataService { } } logStack('debug', `Found ${minuteDocs.length} documents`) - const offPeakHoursConsumption = minuteDocs.reduce((sum: number, doc) => { + const offPeakHoursConsumption = minuteDocs.reduce((sum, doc) => { return sum + doc.load }, 0) return offPeakHoursConsumption diff --git a/src/services/exploration.service.ts b/src/services/exploration.service.ts index 18d2fb35604837903df98d53b650b05e72a4a1cf..f0b9eeab238ca23638db1c38e1f289e8593bd610 100644 --- a/src/services/exploration.service.ts +++ b/src/services/exploration.service.ts @@ -1,4 +1,4 @@ -import { Client, Q, QueryDefinition, QueryResult } from 'cozy-client' +import { Client, Q, QueryResult } from 'cozy-client' import { EXPLORATION_DOCTYPE } from 'doctypes' import { UserChallengeUpdateFlag, @@ -21,7 +21,7 @@ export default class ExplorationService { * Retrieve all exploration entities from db */ public async getAllExplorationEntities(): Promise<ExplorationEntity[]> { - const query: QueryDefinition = Q(EXPLORATION_DOCTYPE) + const query = Q(EXPLORATION_DOCTYPE) const { data: explorations }: QueryResult<ExplorationEntity[]> = await this._client.query(query) return explorations @@ -34,7 +34,7 @@ export default class ExplorationService { public async getExplorationEntityById( explorationId: string ): Promise<ExplorationEntity> { - const query: QueryDefinition = Q(EXPLORATION_DOCTYPE) + const query = Q(EXPLORATION_DOCTYPE) .where({ _id: explorationId }) .limitBy(1) const { @@ -87,8 +87,7 @@ export default class ExplorationService { entity => entity.id === searchId ) if (explorationEntityIndex >= 0) { - const explorationEntity: ExplorationEntity = - explorationEntityList[explorationEntityIndex] + const explorationEntity = explorationEntityList[explorationEntityIndex] exploration = this.parseExplorationEntityToUserExploration(explorationEntity) } @@ -130,7 +129,7 @@ export default class ExplorationService { * Return exploration with updated state to UserExplorationState.NOTIFICATION * @param {UserExploration} userExploration - userExploration to update */ - public async awaitNotificationUserExploration( + public async setNotificationUserExploration( userExploration: UserExploration ): Promise<UserExploration> { const updatedUserExploration: UserExploration = { @@ -161,7 +160,6 @@ export default class ExplorationService { userExploration: UserExploration ): Promise<UserExploration> { const updatedProgress = userExploration.progress + 1 - const updatedUserExploration: UserExploration = { ...userExploration, progress: updatedProgress, diff --git a/src/services/fluidsPrices.service.ts b/src/services/fluidsPrices.service.ts index 525dd3d2597de592b48d80bcd26308bfe95df671..e243fddae7e03b2f9fbd99464026c25d3ac740b8 100644 --- a/src/services/fluidsPrices.service.ts +++ b/src/services/fluidsPrices.service.ts @@ -1,5 +1,5 @@ import * as Sentry from '@sentry/react' -import { Client, Q, QueryDefinition, QueryResult } from 'cozy-client' +import { Client, Q, QueryResult } from 'cozy-client' import logger from 'cozy-logger' import { FLUIDSPRICES_DOCTYPE } from 'doctypes' import { FluidType } from 'enums' @@ -21,7 +21,7 @@ export default class FluidPricesService { * Get all prices available in database */ public async getAllPrices(): Promise<FluidPrice[]> { - const query: QueryDefinition = Q(FLUIDSPRICES_DOCTYPE).limitBy(900) + const query = Q(FLUIDSPRICES_DOCTYPE).limitBy(900) // TODO : handle case of 1000+ entries in doctype const { data: fluidsPrices }: QueryResult<FluidPrice[]> = await this._client.query(query) @@ -35,7 +35,7 @@ export default class FluidPricesService { fluidType: FluidType, date: DateTime ): Promise<FluidPrice> { - const query: QueryDefinition = Q(FLUIDSPRICES_DOCTYPE) + const query = Q(FLUIDSPRICES_DOCTYPE) .where({ startDate: { $lte: date.toISO({ suppressMilliseconds: true }).toString(), @@ -55,7 +55,7 @@ export default class FluidPricesService { * Get current prices for all fluidTypes. */ public async getAllLastPrices(): Promise<FluidPrice[]> { - const query: QueryDefinition = Q(FLUIDSPRICES_DOCTYPE) + const query = Q(FLUIDSPRICES_DOCTYPE) .where({ endDate: { $eq: '' } }) .indexFields(['fluidType']) .sortBy([{ fluidType: 'asc' }]) @@ -121,7 +121,7 @@ export default class FluidPricesService { public async checkIfPriceExists( fluidPrice: FluidPrice ): Promise<FluidPrice | null> { - const query: QueryDefinition = Q(FLUIDSPRICES_DOCTYPE).where({ + const query = Q(FLUIDSPRICES_DOCTYPE).where({ startDate: { $eq: fluidPrice.startDate }, fluidType: { $eq: fluidPrice.fluidType }, }) diff --git a/src/services/initialization.service.ts b/src/services/initialization.service.ts index 3ef1c9ba9d53223c16bdc483b5eaeaa3c432c81a..82030b760263f029a3a4097a8160fb60220e41df 100644 --- a/src/services/initialization.service.ts +++ b/src/services/initialization.service.ts @@ -1,5 +1,5 @@ import * as Sentry from '@sentry/react' -import { Client, Q, QueryDefinition, QueryResult } from 'cozy-client' +import { Client, Q, QueryResult } from 'cozy-client' import logger from 'cozy-logger' import challengeEntityData from 'db/challengeEntity.json' import duelEntityData from 'db/duelEntity.json' @@ -156,7 +156,7 @@ export default class InitializationService { public async initFluidPrices(): Promise<void> { const startTime = performance.now() logDuration('[Initialization] Launching fluidPrices service', startTime) - const triggerQuery: QueryDefinition = Q(TRIGGERS_DOCTYPE).where({ + const triggerQuery = Q(TRIGGERS_DOCTYPE).where({ 'message.name': 'fluidsPrices', }) const { diff --git a/src/services/konnector.service.ts b/src/services/konnector.service.ts index 5b16ad5391d0031d9f1e0744bebb472e6461dd73..00887b6bc13641d001d6a5a027526cc64f0ee908 100644 --- a/src/services/konnector.service.ts +++ b/src/services/konnector.service.ts @@ -1,4 +1,4 @@ -import { Client, Q, QueryDefinition, QueryResult } from 'cozy-client' +import { Client, Q, QueryResult } from 'cozy-client' import { KONNECTORS_DOCTYPE } from 'doctypes' import { Account, Konnector, TriggerState } from 'models' import TriggerService from 'services/triggers.service' @@ -11,7 +11,7 @@ export default class KonnectorService { } public async getKonnector(id: string): Promise<Konnector | null> { - const query: QueryDefinition = Q(KONNECTORS_DOCTYPE).where({ + const query = Q(KONNECTORS_DOCTYPE).where({ _id: KONNECTORS_DOCTYPE + '/' + id, }) const { data: konnector }: QueryResult<Konnector[]> = @@ -33,9 +33,7 @@ export default class KonnectorService { } public async createIndexKonnector() { - const query: QueryDefinition = Q(KONNECTORS_DOCTYPE) - .where({ _id: 'index' }) - .limitBy(1) + const query = Q(KONNECTORS_DOCTYPE).where({ _id: 'index' }).limitBy(1) const { data: result }: QueryResult<[]> = await this._client.query(query) return result } diff --git a/src/services/profile.service.ts b/src/services/profile.service.ts index 48a31b7224ff4bfef964f420d4623323dfb17eb5..33a7a32df794fce34eeb468842cf1daf683ecf35 100644 --- a/src/services/profile.service.ts +++ b/src/services/profile.service.ts @@ -1,4 +1,4 @@ -import { Client, Q, QueryDefinition, QueryResult } from 'cozy-client' +import { Client, Q, QueryResult } from 'cozy-client' import { PROFILE_DOCTYPE } from 'doctypes' import { DateTime } from 'luxon' import { Profile, ProfileEntity } from 'models' @@ -42,11 +42,11 @@ export default class ProfileService { } public async getProfile(): Promise<Profile | null> { - const query: QueryDefinition = Q(PROFILE_DOCTYPE) + const query = Q(PROFILE_DOCTYPE) const { data: [profile], }: QueryResult<ProfileEntity[]> = await this._client.query(query.limitBy(1)) - const profileEntity: ProfileEntity | null = profile ? profile : null + const profileEntity = profile ? profile : null if (profileEntity) { return this.parseProfileEntityToProfile(profileEntity) } @@ -56,7 +56,7 @@ export default class ProfileService { public async updateProfile( attributes: Partial<Profile> ): Promise<Profile | null> { - const query: QueryDefinition = Q(PROFILE_DOCTYPE) + const query = Q(PROFILE_DOCTYPE) const { data: [doc], }: QueryResult<ProfileEntity[]> = await this._client.query(query.limitBy(1)) diff --git a/src/services/profileEcogesture.service.ts b/src/services/profileEcogesture.service.ts index e9cfce1e125ebd6e3162c3a626adccd7054dfb00..ff44764751853ee4aaa19dd81c0de4cdecffd2f6 100644 --- a/src/services/profileEcogesture.service.ts +++ b/src/services/profileEcogesture.service.ts @@ -1,4 +1,4 @@ -import { Client, Q, QueryDefinition, QueryResult } from 'cozy-client' +import { Client, Q, QueryResult } from 'cozy-client' import { PROFILEECOGESTURE_DOCTYPE } from 'doctypes' import { ProfileEcogesture } from 'models' @@ -12,7 +12,7 @@ export default class ProfileEcogestureService { * Retrieve the ProfileEcogesture from db */ public async getProfileEcogesture(): Promise<ProfileEcogesture | null> { - const query: QueryDefinition = Q(PROFILEECOGESTURE_DOCTYPE) + const query = Q(PROFILEECOGESTURE_DOCTYPE) const { data: [profileEcogesture], }: QueryResult<ProfileEcogesture[]> = await this._client.query( @@ -28,7 +28,7 @@ export default class ProfileEcogestureService { public async updateProfileEcogesture( attributes: Partial<ProfileEcogesture> ): Promise<ProfileEcogesture | null> { - const query: QueryDefinition = Q(PROFILEECOGESTURE_DOCTYPE) + const query = Q(PROFILEECOGESTURE_DOCTYPE) const { data: [doc], }: QueryResult<ProfileEcogesture[]> = await this._client.query( diff --git a/src/services/profileType.service.ts b/src/services/profileType.service.ts index d23b445e642ac9745b4ba7520b4c2660d4d6145d..99f7d57c64bd0149b1fb785352a913dd0d89013e 100644 --- a/src/services/profileType.service.ts +++ b/src/services/profileType.service.ts @@ -84,7 +84,7 @@ export default class ProfileTypeService { let correctionFacilities: number const correctionsNbWalls = heatingData.adjustment_outside_facing_walls[housingType] - const correctionWalls: number = correctionsNbWalls[outsideFacingWalls] + const correctionWalls = correctionsNbWalls[outsideFacingWalls] const correctionFloor = housingType === HousingType.APARTMENT ? heatingData.adjustment_floor.apartment[floor] @@ -233,7 +233,7 @@ export default class ProfileTypeService { accumulator: number, currentValue: number ): number => accumulator + currentValue - const totalRawNeeds: number = rawNeeds.reduce(calculateTotalNeeds) + const totalRawNeeds = rawNeeds.reduce(calculateTotalNeeds) const spreadConsumption: number = (totalRawNeeds / (12 * 100)) * EcsData.mensual_repartition[month - 1] return Math.round(spreadConsumption) @@ -282,7 +282,7 @@ export default class ProfileTypeService { * @returns {number} monthCookingConsumption */ public getMonthCookingConsumption(month: number): number { - const annualCookingConsumption: number = + const annualCookingConsumption = this.profileType.occupantsNumber * cookingData.ratio_kw_per_person_per_year const nbDaysInMonth = DateTime.fromObject({ @@ -299,7 +299,7 @@ export default class ProfileTypeService { * @returns {number} monthElectricSpecificConsumption */ public getMonthElectricSpecificConsumption(month: number): number { - const annualElectricSpecificConsumption: number = + const annualElectricSpecificConsumption = elecSpeData[this.profileType.housingType][ this.profileType.constructionYear ] @@ -317,11 +317,11 @@ export default class ProfileTypeService { * @returns {number} monthColdWaterConsumption */ public getMonthColdWaterConsumption(month: number): number { - const occupantsNumberIndex: number = coldWaterData.findIndex( + const occupantsNumberIndex = coldWaterData.findIndex( waterNeeds => waterNeeds.occupants_number === this.profileType.occupantsNumber ) - const coldWaterNeeds: number = + const coldWaterNeeds = coldWaterData[occupantsNumberIndex].consumption_in_liter_per_day const nbDaysInMonth = DateTime.fromObject({ month: month, diff --git a/src/services/profileTypeEntity.service.ts b/src/services/profileTypeEntity.service.ts index 59d6b80dada9c3b9ec30dbb5f525933fd9368496..b54335ba3214caa5d8c6574aceb238bbf11d4490 100644 --- a/src/services/profileTypeEntity.service.ts +++ b/src/services/profileTypeEntity.service.ts @@ -1,5 +1,5 @@ import * as Sentry from '@sentry/react' -import { Client, Q, QueryDefinition, QueryResult } from 'cozy-client' +import { Client, Q, QueryResult } from 'cozy-client' import logger from 'cozy-logger' import profileTypeData from 'db/profileTypeData.json' import { PROFILETYPE_DOCTYPE } from 'doctypes' @@ -21,7 +21,7 @@ export default class ProfileTypeEntityService { * When called without parameters, fetches last profileType in doctype */ public async getProfileType(date?: DateTime): Promise<ProfileType | null> { - const query: QueryDefinition = Q(PROFILETYPE_DOCTYPE) + const query = Q(PROFILETYPE_DOCTYPE) if (date) { const { data: [profileType], @@ -32,7 +32,7 @@ export default class ProfileTypeEntityService { .sortBy([{ updateDate: 'desc' }]) .limitBy(1) ) - const result: ProfileType | null = profileType ? profileType : null + const result = profileType ? profileType : null if (result) { return this.parseProfileTypeEntityToProfileType(profileType) } else { @@ -40,7 +40,7 @@ export default class ProfileTypeEntityService { logApp.debug( 'Checking if user has already filled a profileType and uses it as default' ) - const query: QueryDefinition = Q(PROFILETYPE_DOCTYPE) + const query = Q(PROFILETYPE_DOCTYPE) const data: QueryResult<ProfileType[]> = await this._client.query(query) if (data.data.length) { const loadedProfileType: ProfileType = data.data[0] @@ -69,7 +69,7 @@ export default class ProfileTypeEntityService { .sortBy([{ updateDate: 'desc' }]) .limitBy(1) ) - const result: ProfileType | null = profileType ? profileType : null + const result = profileType ? profileType : null if (result) { return this.parseProfileTypeEntityToProfileType(profileType) } @@ -85,7 +85,7 @@ export default class ProfileTypeEntityService { public async getAllProfileTypes( timePeriod?: TimePeriod ): Promise<ProfileType[] | null> { - const query: QueryDefinition = Q(PROFILETYPE_DOCTYPE) + const query = Q(PROFILETYPE_DOCTYPE) if (timePeriod) { const data: QueryResult<ProfileType[]> = await this._client.query( query @@ -100,7 +100,7 @@ export default class ProfileTypeEntityService { ) if (data.data.length) { const profileTypesToReturn: ProfileType[] = [] - data.data.forEach((ele: ProfileType) => { + data.data.forEach(ele => { profileTypesToReturn.push( this.parseProfileTypeEntityToProfileType(ele) ) @@ -115,7 +115,7 @@ export default class ProfileTypeEntityService { ) if (data.data.length) { const profileTypesToReturn: ProfileType[] = [] - data.data.forEach((ele: ProfileType) => { + data.data.forEach(ele => { profileTypesToReturn.push( this.parseProfileTypeEntityToProfileType(ele) ) @@ -132,7 +132,7 @@ export default class ProfileTypeEntityService { public async saveProfileType( attributes: Partial<ProfileType> ): Promise<ProfileType | null> { - const query: QueryDefinition = Q(PROFILETYPE_DOCTYPE) + const query = Q(PROFILETYPE_DOCTYPE) const { data: [doc], }: QueryResult<ProfileType[]> = await this._client.query(query.limitBy(1)) diff --git a/src/services/quiz.service.ts b/src/services/quiz.service.ts index cccf2d93cabab72c5aa6c6f388262d4d0c7af356..0a83636cd1e2708a4128634f29acf05b4f6012c4 100644 --- a/src/services/quiz.service.ts +++ b/src/services/quiz.service.ts @@ -1,4 +1,4 @@ -import { Client, Q, QueryDefinition, QueryResult } from 'cozy-client' +import { Client, Q, QueryResult } from 'cozy-client' import { QUIZ_DOCTYPE } from 'doctypes' import { CustomQuestionType, @@ -36,7 +36,7 @@ export default class QuizService { * Retrieve all quiz entities from db */ public async getAllQuizEntities(): Promise<QuizEntity[]> { - const query: QueryDefinition = Q(QUIZ_DOCTYPE) + const query = Q(QUIZ_DOCTYPE) const { data: quizzes }: QueryResult<QuizEntity[]> = await this._client.query(query) return quizzes @@ -47,9 +47,7 @@ export default class QuizService { * @param {string} quizId - ID of the searched quiz */ public async getQuizEntityById(quizId: string): Promise<QuizEntity> { - const query: QueryDefinition = Q(QUIZ_DOCTYPE) - .where({ _id: quizId }) - .limitBy(1) + const query = Q(QUIZ_DOCTYPE).where({ _id: quizId }).limitBy(1) const { data }: QueryResult<QuizEntity[]> = await this._client.query(query) return data?.[0] } @@ -99,7 +97,7 @@ export default class QuizService { entity => entity.id === searchId ) if (quizEntityIndex >= 0) { - const quizEntity: QuizEntity = quizEntityList[quizEntityIndex] + const quizEntity = quizEntityList[quizEntityIndex] quiz = this.parseQuizEntityToUserQuiz(quizEntity) } } @@ -137,12 +135,12 @@ export default class QuizService { const userQuestions: UserQuestion[] = [] quiz.questions.forEach(question => { - const userQuestion: UserQuestion = - this.parseQuestionEntityToQuestion(question) + const userQuestion = this.parseQuestionEntityToQuestion(question) userQuestions.push(userQuestion) }) - const userCustomQuestion: UserCustomQuestion = - this.parseCustomQuestionEntityToCustomQuestion(quiz.customQuestion) + const userCustomQuestion = this.parseCustomQuestionEntityToCustomQuestion( + quiz.customQuestion + ) const userQuiz: UserQuiz = { id: quiz.id, @@ -183,12 +181,10 @@ export default class QuizService { * @param {UserQuiz} userQuiz - userQuiz to update */ public async resetUserQuiz(userQuiz: UserQuiz): Promise<UserQuiz> { - const updatedQuestions: UserQuestion[] = userQuiz.questions.map( - question => ({ - ...question, - result: UserQuestionState.UNLOCKED, - }) - ) + const updatedQuestions = userQuiz.questions.map(question => ({ + ...question, + result: UserQuestionState.UNLOCKED, + })) const updatedCustomQuestion = { ...userQuiz.customQuestion, result: UserQuestionState.UNLOCKED, @@ -269,8 +265,8 @@ export default class QuizService { customQuestionEntity.interval, customQuestionEntity.period.weekday ? {} : customQuestionEntity.period ) - let useFluidTypes: FluidType[] = fluidTypes - let questionLabel: string = customQuestionEntity.questionLabel + let useFluidTypes = fluidTypes + let questionLabel = customQuestionEntity.questionLabel let unit = '€' if (customQuestionEntity.singleFluid === true) { let unitLabel = 'kWh' @@ -394,7 +390,7 @@ export default class QuizService { interval: TimePeriod, fluidTypes: FluidType[] ): Promise<IntervalAnswer> { - let dateMax: DateTime = DateTime.local().setZone('utc', { + let dateMax = DateTime.local().setZone('utc', { keepLocalTime: true, }) let max = 0 diff --git a/src/services/terms.service.ts b/src/services/terms.service.ts index 778405b3f809f071e167f7106df99d6f35649c8d..2e33732d5e035c07d1c0b91176217bcafdbaa9c5 100644 --- a/src/services/terms.service.ts +++ b/src/services/terms.service.ts @@ -1,5 +1,5 @@ import * as Sentry from '@sentry/react' -import { Client, Q, QueryDefinition, QueryResult } from 'cozy-client' +import { Client, Q, QueryResult } from 'cozy-client' import logger from 'cozy-logger' import { TERMS_DOCTYPE } from 'doctypes' import { DateTime } from 'luxon' @@ -18,7 +18,7 @@ export default class TermsService { * Gets the last term doctype */ public async getLastTerm(): Promise<Term> { - const query: QueryDefinition = Q(TERMS_DOCTYPE) + const query = Q(TERMS_DOCTYPE) .where({}) .indexFields(['acceptedAt']) .sortBy([{ acceptedAt: 'desc' }]) @@ -31,7 +31,7 @@ export default class TermsService { /** Checks if the last term has been accepted by user */ public async isLastTermValidated(): Promise<boolean> { - const query: QueryDefinition = Q(TERMS_DOCTYPE) + const query = Q(TERMS_DOCTYPE) .where({}) .indexFields(['acceptedAt']) .sortBy([{ acceptedAt: 'desc' }]) @@ -52,8 +52,8 @@ export default class TermsService { public async getTermsVersionType(): Promise<VersionType> { const lastTerm = await this.getLastTerm() if (lastTerm) { - const splittedLastVersion: string[] = lastTerm.version.split('.') - const splittedConfVersion: string[] = config.termsVersion.split('.') + const splittedLastVersion = lastTerm.version.split('.') + const splittedConfVersion = config.termsVersion.split('.') if ( splittedLastVersion[0] === splittedConfVersion[0] && (splittedLastVersion[1] !== splittedConfVersion[1] || diff --git a/src/services/triggers.service.ts b/src/services/triggers.service.ts index 5e363dbe5a34b8324a398a3532f8de596ab8e877..39fd600215bdcbb9dbb019fd77c2c1246dca33d6 100644 --- a/src/services/triggers.service.ts +++ b/src/services/triggers.service.ts @@ -1,5 +1,5 @@ import * as Sentry from '@sentry/react' -import { Client, Q, QueryDefinition, QueryResult } from 'cozy-client' +import { Client, Q, QueryResult } from 'cozy-client' import triggersMutations from 'cozy-harvest-lib/dist/connections/triggers' import { buildAttributes } from 'cozy-harvest-lib/dist/helpers/triggers' import logger from 'cozy-logger' @@ -50,7 +50,7 @@ export default class TriggerService { account: Account, konnector: Konnector ): Promise<Trigger | null> { - const query: QueryDefinition = Q(TRIGGERS_DOCTYPE) + const query = Q(TRIGGERS_DOCTYPE) .where({ 'message.account': account._id, 'message.konnector': konnector.slug, @@ -64,7 +64,7 @@ export default class TriggerService { } public async getTriggerForAccount(account: Account): Promise<Trigger | null> { - const query: QueryDefinition = Q(TRIGGERS_DOCTYPE) + const query = Q(TRIGGERS_DOCTYPE) .where({ 'message.account': account._id, 'message.konnector': account.account_type, diff --git a/src/services/usageEvent.service.ts b/src/services/usageEvent.service.ts index 5f971c83c9f93048118d01adc3ce1370fdd084a6..390d4c654141d48e41263e4336d17605b245fadb 100644 --- a/src/services/usageEvent.service.ts +++ b/src/services/usageEvent.service.ts @@ -1,11 +1,5 @@ import * as Sentry from '@sentry/react' -import { - Client, - MongoSelector, - Q, - QueryDefinition, - QueryResult, -} from 'cozy-client' +import { Client, MongoSelector, Q, QueryResult } from 'cozy-client' import logger from 'cozy-logger' import { USAGEEVENT_DOCTYPE } from 'doctypes' import { DateTime } from 'luxon' @@ -93,16 +87,14 @@ export default class UsageEventService { filterParams: MongoSelector, desc = false ): Promise<UsageEvent[]> { - const query: QueryDefinition = Q(USAGEEVENT_DOCTYPE) + const query = Q(USAGEEVENT_DOCTYPE) .where(filterParams) .sortBy([{ eventDate: desc ? 'desc' : 'asc' }]) const { data: usageEventEntities }: QueryResult<UsageEventEntity[]> = await client.query(query) - const usageEvents: UsageEvent[] = usageEventEntities.map( - (usageEventEntity: UsageEventEntity) => { - return this.parseUsageEventEntityToUsageEvent(usageEventEntity) - } - ) + const usageEvents = usageEventEntities.map(usageEventEntity => { + return this.parseUsageEventEntityToUsageEvent(usageEventEntity) + }) return usageEvents } diff --git a/src/targets/services/consumptionAlert.ts b/src/targets/services/consumptionAlert.ts index 496b83c3596b712b97f7d5449464086b69401478..1dc6b33128e4c9dcebfaece7a8e9a1387fcc3ab0 100644 --- a/src/targets/services/consumptionAlert.ts +++ b/src/targets/services/consumptionAlert.ts @@ -55,7 +55,7 @@ const consumptionAlert = async ({ client }: ConsumptionAlertProps) => { const fetchedData = await consumptionService.getLastDataload(FluidType.WATER) let lastDayValue = 0 - let alertDay: DateTime = DateTime.local().setZone('utc', { + let alertDay = DateTime.local().setZone('utc', { keepLocalTime: true, }) diff --git a/src/targets/services/enedisHalfHourMonthlyAnalysis.ts b/src/targets/services/enedisHalfHourMonthlyAnalysis.ts index 307e399cc26c447b6a1487eddd40cd6826a63a27..c6858269e4c8f6893f7c4948d9ad8024b45783b7 100644 --- a/src/targets/services/enedisHalfHourMonthlyAnalysis.ts +++ b/src/targets/services/enedisHalfHourMonthlyAnalysis.ts @@ -185,7 +185,7 @@ const getEnedisMonthAnalysisData = async ( arr.reduce((a, b) => a + b, 0) / arr.length // at this point we have an array of sums for each 48 half hour timestep // so we calculate the average - const weekEndAverages: number[] = weekEndValuesArray.map(halfHourArray => + const weekEndAverages = weekEndValuesArray.map(halfHourArray => arrAvg(halfHourArray) ) // so we calculate the average @@ -238,9 +238,7 @@ const syncEnedisMonthlyAnalysisDataDoctype = async ({ const today = DateTime.local().setZone('utc', { keepLocalTime: true, }) - const analysisDate: DateTime = today.minus({ - month: 1, - }) + const analysisDate = today.minus({ month: 1 }) const data = await getEnedisMonthAnalysisData( client, diff --git a/src/targets/services/fluidsPrices.ts b/src/targets/services/fluidsPrices.ts index 48898f8fa039ddfc1c1bcdac5a7ac3b8392a31d4..82143e8d9d9e46e3424198dccbc5db1ae051a486 100644 --- a/src/targets/services/fluidsPrices.ts +++ b/src/targets/services/fluidsPrices.ts @@ -273,7 +273,7 @@ const applyPrices = async (client: Client, fluidType: FluidType) => { // Hourly and daily prices for (const timeStep of timeSteps) { - let date: DateTime = DateTime.local().setZone('utc', { + let date = DateTime.local().setZone('utc', { keepLocalTime: true, }) Object.assign(date, firstDate) diff --git a/src/utils/utils.ts b/src/utils/utils.ts index 42473d7d0462670d6866923f2d6ae9ff64cc3b53..10ce560cae3060bf92779a22a43b95abe905a9a8 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -232,40 +232,25 @@ export const getMonthNameWithPrep = (date: DateTime) => { * @returns Season */ export const getSeason = (): Season => { - const currentDate: DateTime = DateTime.local().setZone('utc', { + const currentDate = DateTime.local().setZone('utc', { + keepLocalTime: true, + }) + const currentYear = currentDate.year + const winterStart = DateTime.local(currentYear, 11, 1).setZone('utc', { + keepLocalTime: true, + }) + const winterEnd = DateTime.local(currentYear + 1, 3, 1).setZone('utc', { keepLocalTime: true, }) - const currentYear: number = currentDate.year - const winterStart: DateTime = DateTime.local(currentYear, 11, 1).setZone( - 'utc', - { - keepLocalTime: true, - } - ) - const winterEnd: DateTime = DateTime.local(currentYear + 1, 3, 1).setZone( - 'utc', - { - keepLocalTime: true, - } - ) - const summerStart: DateTime = DateTime.local(currentYear, 6, 1).setZone( - 'utc', - { - keepLocalTime: true, - } - ) - const summerEnd: DateTime = DateTime.local(currentYear, 9, 1).setZone('utc', { + const summerStart = DateTime.local(currentYear, 6, 1).setZone('utc', { + keepLocalTime: true, + }) + const summerEnd = DateTime.local(currentYear, 9, 1).setZone('utc', { keepLocalTime: true, }) - const summerInterval: Interval = Interval.fromDateTimes( - summerStart, - summerEnd - ) - const winterInterval: Interval = Interval.fromDateTimes( - winterStart, - winterEnd - ) + const summerInterval = Interval.fromDateTimes(summerStart, summerEnd) + const winterInterval = Interval.fromDateTimes(winterStart, winterEnd) if (summerInterval.contains(currentDate)) { return Season.SUMMER