Skip to content
Snippets Groups Projects
Commit cbe554d2 authored by Rémi PAILHAREY's avatar Rémi PAILHAREY :fork_knife_plate:
Browse files

feat(splash): init fluidPrices for latest data

parent 45f4ab89
No related branches found
No related tags found
1 merge request!986feat: init fluidPrices for latest data
...@@ -204,7 +204,7 @@ const SplashRoot = ({ fadeTimer = 1000, children }: SplashRootProps) => { ...@@ -204,7 +204,7 @@ const SplashRoot = ({ fadeTimer = 1000, children }: SplashRootProps) => {
if (subscribed) dispatch(updateTermsStatus(termsStatus)) if (subscribed) dispatch(updateTermsStatus(termsStatus))
// Init fluidPrices // Init fluidPrices
await initializationService.initFluidPrices() await initializationService.initFluidPrices(client)
// Init profile and update ecogestures, challenges, analysis // Init profile and update ecogestures, challenges, analysis
const profile = await initializationService.initProfile() const profile = await initializationService.initProfile()
......
import * as Sentry from '@sentry/react' import * as Sentry from '@sentry/react'
import { Client } from 'cozy-client' import { Client, Q, QueryDefinition, QueryResult } from 'cozy-client'
import logger from 'cozy-logger' import logger from 'cozy-logger'
import challengeEntityData from 'db/challengeEntity.json' import challengeEntityData from 'db/challengeEntity.json'
import duelEntityData from 'db/duelEntity.json' import duelEntityData from 'db/duelEntity.json'
...@@ -29,6 +29,7 @@ import { ...@@ -29,6 +29,7 @@ import {
ProfileEcogesture, ProfileEcogesture,
ProfileType, ProfileType,
TermsStatus, TermsStatus,
Trigger,
UserChallenge, UserChallenge,
} from 'models' } from 'models'
import React from 'react' import React from 'react'
...@@ -161,14 +162,13 @@ export default class InitializationService { ...@@ -161,14 +162,13 @@ export default class InitializationService {
} }
} }
public async initFluidPrices(): Promise<boolean> { public async initFluidPrices(client: Client): Promise<boolean> {
const startTime = performance.now() const startTime = performance.now()
const fpService = new FluidPricesService(this._client) const fpService = new FluidPricesService(this._client)
// Populate data if none ecogesture exists // Populate data if none ecogesture exists
const loadedPrices = await fpService.getAllPrices() const loadedPrices = await fpService.getAllPrices()
if (loadedPrices?.length) { if (loadedPrices?.length) {
logDuration('[Initialization] FluidPrices db already created', startTime) logDuration('[Initialization] FluidPrices db already created', startTime)
return true
} else { } else {
try { try {
const fluidTypes: FluidType[] = [ const fluidTypes: FluidType[] = [
...@@ -192,7 +192,6 @@ export default class InitializationService { ...@@ -192,7 +192,6 @@ export default class InitializationService {
await fpService.createPrice(price) await fpService.createPrice(price)
} }
logDuration('[Initialization] FluidPrices db created', startTime) logDuration('[Initialization] FluidPrices db created', startTime)
return true
} catch (error) { } catch (error) {
const errorMessage = `Initialization error - initFluidPrices: ${JSON.stringify( const errorMessage = `Initialization error - initFluidPrices: ${JSON.stringify(
error error
...@@ -203,6 +202,29 @@ export default class InitializationService { ...@@ -203,6 +202,29 @@ export default class InitializationService {
return false return false
} }
} }
// Launching fluidPrices service to apply new price to latest data
logDuration('[Initialization] Launching fluidPrices service', startTime)
const triggerQuery: QueryDefinition = Q('io.cozy.triggers').where({
'message.name': 'fluidsPrices',
})
const {
data: [trigger],
}: QueryResult<Array<Trigger>> = await client.query(triggerQuery)
if (trigger?._id) {
client
.getStackClient()
.fetchJSON('POST', `/jobs/triggers/${trigger._id}/launch`)
logDuration(
'[Initialization] fluidPrices service launched successfully',
startTime
)
} else {
logDuration(
'[Initialization] FluidPrices service trigger not found',
startTime
)
}
return true
} }
public async initChallengeEntity(hash: string): Promise<string> { public async initChallengeEntity(hash: string): Promise<string> {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment