Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • web-et-numerique/factory/llle_project/ecolyo
1 result
Select Git revision
Show changes
......@@ -6,11 +6,11 @@ export enum KonnectorError {
UNKNOWN_ERROR = 'UNKNOWN_ERROR',
CRITICAL = 'exit status 1',
MISSING_SECRET = "Cannot read property 'secret' of null",
USER_ACTION_NEEDED_ACCOUNT_REMOVED = 'USER_ACTION_NEEDED.ACCOUNT_REMOVED',
}
export enum KonnectorUpdate {
ERROR_UPDATE = 'error_update',
ERROR_UPDATE_OAUTH = 'error_update_oauth',
LOGIN_FAILED = 'login_failed',
ERROR_CONSENT_FORM_GAS = 'error_consent_form_gas',
}
......@@ -217,7 +217,8 @@
"consentCheck1": "Je consens à partager les données personnelles ci-dessus pour une durée d'<span>un\u00a0an</span>",
"consentCheck2": "J’atteste être le titulaire du point de livraison (PCE) renseigné à l’étape précédente",
"waiting": {
"mailSent": "Un mail va vous être envoyé par GRDF sur l’adresse mail :<br><span>%{email}</span>",
"mailSent": "Un mail vous a été envoyé...",
"mailDelay": "Patience, cela peut prendre jusqu'à 15 minutes",
"validate": "Merci de valider l'autorisation d'accès à vos données",
"comeback": "Une fois ce clic effectué, revenez ici pour accéder à vos données",
"button_done": "C’est fait !"
......@@ -765,7 +766,6 @@
"error_login_failed": "Identifiants invalides",
"error_update": "Un problème est survenu lors du rapatriement de vos données.",
"error_update_oauth": "Votre autorisation pour afficher vos données %{fluid} a expiré.",
"error_consent_form_gas": "Vos données ne peuvent être récupérées car vous n'avez pas coché l'autorisation d'accès aux données informatives lors de votre partage de consentement.",
"button_oauth_reload": "Redonner mon consentement",
"OK": "Ok",
"konnector_delta": {
......@@ -820,18 +820,17 @@
"text2": "Reconfigurer mon connecteur\u00a0?",
"text3": "La reconfiguration de votre connecteur passe par sa suppression et sa nouvelle installation. Vos données seront conservées."
},
"error_data_electricity": "Un problème est survenu. Vos données de consommation d’électricité ne seront pas chargées.",
"error_data_water": "Un problème est survenu. Vos données de consommation d’eau ne seront pas chargées.",
"error_credentials_water": "Une erreur s'est glissée dans vos identifiants de connexion. Veuillez vérifier ces éléments et tenter de vous reconnecter. L'identifiant est un numéro à 7 chiffres (différent de votre numéro de contrat).",
"error_credentials_electricity": "Il semblerait que les nom(s) et adresse ne concordent pas avec le numéro de votre compteur.",
"error_credentials_electricity_2": "Nous ne pouvons vous donner accès aux données de consommation.",
"error_credentials_update_water": "Une erreur s'est glissée dans vos identifiants de connexion. Veuillez vérifier ces éléments et tenter de vous reconnecter.",
"error_credentials_update_electricity": "Un problème a lieu lors de la récupération de vos données. Merci de supprimer votre connecteur et vous reconnecter.",
"error_credentials_update_gas": "Un problème a lieu lors de la récupération de vos données. Merci de supprimer votre connecteur et vous reconnecter.",
"error_data_gas": "Un problème est survenu. Vos données de consommation de gaz ne seront pas chargées.",
"error_consent_form_gas_title": "Nous n'avons pas pu connecter vos données de consommation de gaz à Ecolyo.",
"error_consent_form_gas_content": "En effet, le partage de vos données de consommation de gaz \"informatives\" doit être accepté.",
"error_consent_form_gas_content_2": "Merci de cocher \"OUI\" au partage de vos données de consommation de gaz, et à \"Autoriser l'accès à mes données informatives\".",
"error_consent_form_gas_title": "L'accès à vos données a été bloqué par GRDF suite à un consentement précédemment supprimé par vos soins.",
"error_consent_form_gas_report": "Merci de nous signaler le problème.",
"error_data_electricity": "Un problème est survenu. Vos données de consommation d’électricité ne seront pas chargées.",
"error_data_water": "Un problème est survenu. Vos données de consommation d’eau ne seront pas chargées.",
"error_data_gas": "Il semblerait que le service de connexion à vos données de gaz soit momentanément en panne.",
"error_data_update_electricity": "Un problème est survenu. Vos données de consommation d’électricité n’ont pas été mises à jour.",
"error_data_update_water": "Un problème est survenu. Vos données de consommation d’eau n’ont pas été mises à jour.",
"error_data_update_gas": "Un problème est survenu. Vos données de consommation de gaz n’ont pas été mises à jour.",
......@@ -839,9 +838,11 @@
"button_validate": "Ok",
"button_understood": "J'ai compris",
"button_try_again": "Réessayer",
"button_contact": "Nous contacter",
"button_check_info": "Vérifier les infos",
"button_go": "J'y vais",
"button_later": "Plus tard",
"button_come_back_later": "Revenir plus tard",
"show_common_error": "Voir les erreurs récurrentes",
"show_common_error_list": "<span>Le problème peut provenir des cas suivants :</span><ul><li>Vous avez un co-titulaire sur votre contrat. Veillez à bien entrer le nom du <span class=\"gold\">titulaire du contrat</span> et non le co-titulaire.</li><li> Votre nom comporte un tiret\u00a0? Tentez sans le tiret.</li><li>Entrez bien le nom de votre commune de résidence en entier (tirets et accents inclus)</li><li>Avez-vous bien entré le <span class=\"gold\">numéro de votre compteur</span> (PDL)\u00a0? Tout autre numéro (de contrat, de client) ne fonctionne pas.</li></ul><p>Si vous rencontrez toujours des difficultés, contactez notre service d'aide </p><div class=\"center\">Avez-vous pensez à vérifier ces informations\u00a0?</div>",
"accessibility": {
......@@ -851,16 +852,13 @@
},
"consent_outdated": {
"title": {
"0": "Votre autorisation pour afficher vos données d’électricité a expiré",
"2": "Votre autorisation pour afficher vos données de gaz a expiré"
"0": "Votre autorisation pour afficher vos données d’électricité a expiré"
},
"text1": {
"0": "Veuillez re-donner votre consentement pour la transmission et la reconnexion de vos données ENEDIS à Ecolyo.",
"2": "Veuillez re-donner votre accord pour que GRDF nous transmette vos données de consommation."
"0": "Veuillez re-donner votre consentement pour la transmission et la reconnexion de vos données ENEDIS à Ecolyo."
},
"text2": {
"0": "Souhaitez-vous renouveler votre accord dès maintenant pour un an\u00a0?",
"2": "Voulez-vous donner votre accord sur votre compte GRDF maintenant\u00a0?"
"0": "Souhaitez-vous renouveler votre accord dès maintenant pour un an\u00a0?"
},
"later": "Plus tard",
"go": "J'y vais",
......
import { Client } from 'cozy-client'
import { FluidState, FluidType } from 'enums'
import {
Account,
FluidStatus,
Konnector,
PartnersInfo,
Trigger,
TriggerState,
} from 'models'
import { FluidStatus, Konnector, PartnersInfo, TriggerState } from 'models'
import AccountService from 'services/account.service'
import ConsumptionService from 'services/consumption.service'
import ConfigService from 'services/fluidConfig.service'
......@@ -33,9 +26,14 @@ export default class FluidService {
case 'done':
return FluidState.DONE
case 'errored':
if (state?.last_error === 'LOGIN_FAILED')
return FluidState.ERROR_LOGIN_FAILED
else return FluidState.ERROR
if (state?.last_error === 'LOGIN_FAILED') {
return FluidState.LOGIN_FAILED
}
if (state?.last_error === 'CHALLENGE_ASKED') {
return FluidState.CHALLENGE_ASKED
}
return FluidState.ERROR
default:
return FluidState.NOT_CONNECTED
}
......@@ -59,51 +57,47 @@ export default class FluidService {
): Promise<FluidStatus[]> => {
const fluidConfig = new ConfigService().getFluidConfig()
const accountService = new AccountService(this._client)
const [elecAccount, waterAccount, gasAccount]: (Account | null)[] =
await Promise.all([
accountService.getAccountByType(
fluidConfig[FluidType.ELECTRICITY].konnectorConfig.slug
),
accountService.getAccountByType(
fluidConfig[FluidType.WATER].konnectorConfig.slug
),
accountService.getAccountByType(
fluidConfig[FluidType.GAS].konnectorConfig.slug
),
])
const [elecAccount, waterAccount, gasAccount] = await Promise.all([
accountService.getAccountByType(
fluidConfig[FluidType.ELECTRICITY].konnectorConfig.slug
),
accountService.getAccountByType(
fluidConfig[FluidType.WATER].konnectorConfig.slug
),
accountService.getAccountByType(
fluidConfig[FluidType.GAS].konnectorConfig.slug
),
])
const konnectorService = new KonnectorService(this._client)
const [elecKonnector, waterKonnector, gasKonnector]: (Konnector | null)[] =
await Promise.all([
konnectorService.getKonnector(
fluidConfig[FluidType.ELECTRICITY].konnectorConfig.slug
),
konnectorService.getKonnector(
fluidConfig[FluidType.WATER].konnectorConfig.slug
),
konnectorService.getKonnector(
fluidConfig[FluidType.GAS].konnectorConfig.slug
),
])
const [elecKonnector, waterKonnector, gasKonnector] = await Promise.all([
konnectorService.getKonnector(
fluidConfig[FluidType.ELECTRICITY].konnectorConfig.slug
),
konnectorService.getKonnector(
fluidConfig[FluidType.WATER].konnectorConfig.slug
),
konnectorService.getKonnector(
fluidConfig[FluidType.GAS].konnectorConfig.slug
),
])
const triggerService = new TriggerService(this._client)
const [elecTrigger, waterTrigger, gasTrigger]: (Trigger | null)[] =
await Promise.all([
elecAccount && elecKonnector
? triggerService.getTrigger(elecAccount, elecKonnector)
: null,
waterAccount && waterKonnector
? triggerService.getTrigger(waterAccount, waterKonnector)
: null,
gasAccount && gasKonnector
? triggerService.getTrigger(gasAccount, gasKonnector)
: null,
])
const [elecTrigger, waterTrigger, gasTrigger] = await Promise.all([
elecAccount && elecKonnector
? triggerService.getTrigger(elecAccount, elecKonnector)
: null,
waterAccount && waterKonnector
? triggerService.getTrigger(waterAccount, waterKonnector)
: null,
gasAccount && gasKonnector
? triggerService.getTrigger(gasAccount, gasKonnector)
: null,
])
const consumptionService = new ConsumptionService(this._client)
const [elecStatus, waterStatus, gasStatus]: (TriggerState | null)[] =
await Promise.all([
elecTrigger ? triggerService.fetchTriggerState(elecTrigger) : null,
waterTrigger ? triggerService.fetchTriggerState(waterTrigger) : null,
gasTrigger ? triggerService.fetchTriggerState(gasTrigger) : null,
])
const [elecStatus, waterStatus, gasStatus] = await Promise.all([
elecTrigger ? triggerService.fetchTriggerState(elecTrigger) : null,
waterTrigger ? triggerService.fetchTriggerState(waterTrigger) : null,
gasTrigger ? triggerService.fetchTriggerState(gasTrigger) : null,
])
console.log('🚀 ~ FluidService ~ gasStatus:', gasStatus)
const firstDataDates =
await consumptionService.fetchAllFirstDateData(allFluids)
......
......@@ -284,7 +284,7 @@ describe('globalSlice', () => {
firstDataDate: null,
lastDataDate: null,
maintenance: false,
status: 0,
status: FluidState.KONNECTOR_NOT_FOUND,
connection: {
shouldLaunchKonnector: true,
isUpdating: true,
......
......@@ -139,9 +139,9 @@ const getFluidTypesFromStatus = (fluidStatus: FluidStatus[]): FluidType[] => {
if (
(fluid.status !== FluidState.KONNECTOR_NOT_FOUND &&
fluid.status !== FluidState.NOT_CONNECTED &&
fluid.status !== FluidState.ERROR_LOGIN_FAILED) ||
fluid.status !== FluidState.LOGIN_FAILED) ||
// Handle Login Error case for oauth konnectors
(fluid.status === FluidState.ERROR_LOGIN_FAILED &&
(fluid.status === FluidState.LOGIN_FAILED &&
fluid.fluidType !== FluidType.WATER)
) {
fluidTypes.push(fluid.fluidType)
......@@ -204,6 +204,7 @@ export const globalSlice = createSlice({
) => {
state.fluidStatus[fluidType].connection = fluidConnection
},
/** Restore last known credentials */
setLastEpglLogin: (state, action: PayloadAction<string>) => {
state.lastEpglLogin = action.payload
},
......
......@@ -72,7 +72,7 @@ describe('utils test', () => {
})
it('should return KonnectorUpdate.ERROR_CONSENT_FORM_GAS for CHALLENGE_ASKED', () => {
const result = getKonnectorUpdateError('CHALLENGE_ASKED')
expect(result).toBe(KonnectorUpdate.ERROR_CONSENT_FORM_GAS)
expect(result).toBe(KonnectorUpdate.ERROR_UPDATE)
})
it('should return KonnectorUpdate.ERROR_UPDATE for an unknown type', () => {
const result = getKonnectorUpdateError('UNKNOWN_TYPE')
......@@ -125,7 +125,7 @@ describe('utils test', () => {
fluidType: FluidType.ELECTRICITY,
},
{ status: FluidState.ERROR, fluidType: FluidType.WATER },
{ status: FluidState.ERROR_LOGIN_FAILED, fluidType: FluidType.GAS },
{ status: FluidState.LOGIN_FAILED, fluidType: FluidType.GAS },
] as FluidStatus[]
expect(isKonnectorActive(fluidStatus, FluidType.ELECTRICITY)).toBe(true)
expect(isKonnectorActive(fluidStatus, FluidType.GAS)).toBe(true)
......
......@@ -52,8 +52,6 @@ export function getKonnectorUpdateError(type: string) {
return KonnectorUpdate.ERROR_UPDATE_OAUTH
case 'LOGIN_FAILED':
return KonnectorUpdate.LOGIN_FAILED
case 'CHALLENGE_ASKED':
return KonnectorUpdate.ERROR_CONSENT_FORM_GAS
default:
return KonnectorUpdate.ERROR_UPDATE
}
......
......@@ -252,7 +252,7 @@ export const mockExpiredElec: FluidStatus = {
export const mockExpiredGas: FluidStatus = {
fluidType: FluidType.GAS,
status: FluidState.ERROR_LOGIN_FAILED,
status: FluidState.LOGIN_FAILED,
maintenance: false,
firstDataDate: null,
lastDataDate: null,
......