Skip to content
Snippets Groups Projects
Commit 21615d24 authored by Yoan VALLET's avatar Yoan VALLET
Browse files

fix: prevent duplicate konnector jobs

parent 72b562e0
No related branches found
No related tags found
2 merge requests!530chore(release): 1.6.4,!527Fix/prevent duplicate konnector jobs
......@@ -86,7 +86,7 @@ const ConnectionOAuth: React.FC<ConnectionOAuthProps> = ({
)
const togglePartnerConnectionModal = useCallback(() => {
setOpenPartenerConnectionModal(prev => !prev)
setOpenPartenerConnectionModal((prev: boolean) => !prev)
}, [])
const handleEndSteps = useCallback(() => {
......
......@@ -2,7 +2,7 @@ import React from 'react'
import { useI18n } from 'cozy-ui/transpiled/react/I18n'
import './connectionOAuth.scss'
import { Konnector } from 'models'
import OAuthForm from 'components/Connection/FormOAuth'
import FormOAuth from 'components/Connection/FormOAuth'
import Button from '@material-ui/core/Button'
interface ConnectionOAuthNoPartnerAccountProps {
......@@ -49,7 +49,7 @@ const ConnectionOAuthNoPartnerAccount = ({
{t('auth.' + `${konnectorSlug}` + '.no_account.subtitle2_info')}
</div>
<div className="koauthform-connect-button">
<OAuthForm
<FormOAuth
konnector={konnector}
onSuccess={handleSuccess}
highlightedStyle={false}
......
......@@ -2,7 +2,7 @@ import React, { useCallback } from 'react'
import { useI18n } from 'cozy-ui/transpiled/react/I18n'
import './connectionOAuth.scss'
import { Konnector } from 'models'
import OAuthForm from 'components/Connection/FormOAuth'
import FormOAuth from 'components/Connection/FormOAuth'
import Button from '@material-ui/core/Button'
interface ConnectionOAuthWithPartnerAccountProps {
......@@ -37,7 +37,7 @@ const ConnectionOAuthWithPartnerAccount = ({
{t('auth.' + konnectorSlug + '.with_account.subtitle1')}
</div>
<div className="koauthform-connect-button">
<OAuthForm
<FormOAuth
konnector={konnector}
onSuccess={handleSuccess}
highlightedStyle={true}
......
......@@ -27,25 +27,25 @@ const FormOAuth: React.FC<FormOAuthProps> = ({
const client = useClient()
const [status, setStatus] = useState<string>(IDLE)
const endOAuth = () => {
const endOAuth = useCallback(() => {
setStatus(IDLE)
}
const startOAuth = () => {
}, [])
const startOAuth = useCallback(() => {
setStatus(WAITING)
}
}, [])
const handleAccountId = useCallback(
(accountId: string) => {
endOAuth()
onSuccess(accountId)
},
[onSuccess]
[endOAuth, onSuccess]
)
const handleSubmit = () => {
startOAuth()
}
const handleOAuthCancel = useCallback(() => {
endOAuth()
}, [])
}, [endOAuth])
const icon = getPartnerPicto(
konnector ? konnector.slug : '',
......@@ -60,7 +60,7 @@ const FormOAuth: React.FC<FormOAuthProps> = ({
<>
<Button
aria-label={t('auth.accessibility.button_connect')}
onClick={handleSubmit}
onClick={startOAuth}
disabled={isWaiting}
classes={{
root: `${
......
......@@ -7,8 +7,10 @@ import {
EGL_MONTH_DOCTYPE,
EGL_YEAR_DOCTYPE,
FLUIDPRICES_DOCTYPE,
ENEDIS_DAY_DOCTYPE,
GRDF_DAY_DOCTYPE,
} from 'doctypes'
import { Profile, ProfileType, UserChallenge } from 'models'
import { DataloadEntity, Profile, ProfileType, UserChallenge } from 'models'
import { Client } from 'cozy-client'
import { DateTime } from 'luxon'
import { UserQuizState } from 'enum/userQuiz.enum'
......@@ -319,4 +321,80 @@ export const migrations: Migration[] = [
})
},
},
{
baseSchemaVersion: 11,
targetSchemaVersion: 12,
appVersion: '1.6.1',
description: 'Corrects daily Enedis data.',
releaseNotes: null,
docTypes: ENEDIS_DAY_DOCTYPE,
queryOptions: {
scope: 'conso',
tag: 'day',
limit: 730,
},
run: async (_client: Client, docs: any[]): Promise<DataloadEntity[]> => {
let prevData: DataloadEntity = {
id: '',
day: 0,
hour: 0,
load: 0,
minute: 0,
month: 0,
year: 0,
}
return docs.map(doc => {
if (
prevData.day === doc.day &&
prevData.month === doc.month &&
prevData.year === doc.year
) {
doc.deleteAction = true
}
if (doc.price) {
delete doc.price
}
prevData = doc
return doc
})
},
},
{
baseSchemaVersion: 12,
targetSchemaVersion: 13,
appVersion: '1.6.1',
description: 'Corrects daily GRDF data.',
releaseNotes: null,
docTypes: GRDF_DAY_DOCTYPE,
queryOptions: {
scope: 'conso',
tag: 'day',
limit: 730,
},
run: async (_client: Client, docs: any[]): Promise<DataloadEntity[]> => {
let prevData: DataloadEntity = {
id: '',
day: 0,
hour: 0,
load: 0,
minute: 0,
month: 0,
year: 0,
}
return docs.map(doc => {
if (
prevData.day === doc.day &&
prevData.month === doc.month &&
prevData.year === doc.year
) {
doc.deleteAction = true
}
if (doc.price) {
delete doc.price
}
prevData = doc
return doc
})
},
},
]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment