Skip to content

Commit eb164dd

Browse files
committed
Refactor identity state fetching to simplify data assignment and improve error handling
1 parent 5ad923a commit eb164dd

File tree

3 files changed

+140
-150
lines changed

3 files changed

+140
-150
lines changed

src/components/identityForm/actions-on-deleted.vue

Lines changed: 56 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
q-btn.q-mx-xs(v-if="props.identity?._id" @click="sync" color="orange-8" :disabled="props.identity.state != IdentityState.TO_VALIDATE" icon="mdi-sync")
77
q-tooltip.text-body2(slot="trigger" v-if="props.identity.state == IdentityState.TO_VALIDATE") Synchroniser l'identité
88
q-tooltip.text-body2(slot="trigger" v-else) L'état de l'identité ne permet pas de la synchroniser
9-
q-btn.q-mx-xs(v-if="props.identity?._id" @click="logs" color="grey-8" icon="mdi-file-document" :href="'/jobs?filters[:concernedTo.id]=' + props.identity?._id")
9+
q-btn.q-mx-xs(v-if="props.identity?._id" color="grey-8" icon="mdi-file-document" :href="'/jobs?filters[:concernedTo.id]=' + props.identity?._id" target="_blank")
1010
q-tooltip.text-body2(slot="trigger") Voir les logs de l'identité
1111
</template>
1212

@@ -20,10 +20,9 @@ import { useFetch } from 'nuxt/app'
2020
import { useIdentityStates } from '~/composables'
2121
import { useErrorHandling } from '#imports'
2222
23-
2423
type IdentityResponse = operations['IdentitiesController_search']['responses']['200']['content']['application/json']
2524
type Identity = components['schemas']['IdentitiesDto']
26-
const activation=ref(true)
25+
const activation = ref(true)
2726
const props = defineProps({
2827
identity: {
2928
type: Object as PropType<Identity>,
@@ -54,37 +53,35 @@ async function create() {
5453
// console.log('submit from actions')
5554
emits('create')
5655
}
57-
function setActivateColor(){
58-
if (props.identity.lastBackendSync != ""){
59-
return "green"
60-
}else{
61-
return "grey"
56+
function setActivateColor() {
57+
if (props.identity.lastBackendSync != '') {
58+
return 'green'
59+
} else {
60+
return 'grey'
6261
}
6362
}
64-
function showActivate(){
65-
if (props.identity.lastBackendSync != ""){
63+
function showActivate() {
64+
if (props.identity.lastBackendSync != '') {
6665
return true
67-
}else{
66+
} else {
6867
return false
6968
}
7069
}
71-
async function activate(){
72-
73-
74-
let message=""
75-
let bouton = ""
76-
let initialStatus=0
77-
if (props.identity.dataStatus === 0){
78-
message="Voulez vous vraiment désactiver l'identité"
79-
bouton="Désactiver"
80-
initialStatus=1
81-
}else{
82-
message="Voulez vous vraiment activer l'identité"
83-
bouton="Activer"
84-
initialStatus=0
70+
async function activate() {
71+
let message = ''
72+
let bouton = ''
73+
let initialStatus = 0
74+
if (props.identity.dataStatus === 0) {
75+
message = "Voulez vous vraiment désactiver l'identité"
76+
bouton = 'Désactiver'
77+
initialStatus = 1
78+
} else {
79+
message = "Voulez vous vraiment activer l'identité"
80+
bouton = 'Activer'
81+
initialStatus = 0
8582
}
8683
debugger
87-
if (showActivate() === false){
84+
if (showActivate() === false) {
8885
props.identity.dataStatus = initialStatus
8986
return
9087
}
@@ -103,34 +100,32 @@ async function activate(){
103100
color: 'negative',
104101
label: 'Annuler',
105102
},
106-
}).onOk(async() => {
107-
const requestOptions={method: 'POST',
108-
body:JSON.stringify({id:props.identity._id,status:props.identity.dataStatus === 1 ?true:false})}
109-
try{
110-
const data=await $http.post('/management/identities/activation', requestOptions)
111-
$q.notify({
112-
message: 'Le statut a été mis à jour : ',
113-
color: 'positive',
114-
position: 'top-right',
115-
icon: 'mdi-check-circle-outline',
116-
})
117-
}catch(error){
118-
props.identity.dataStatus = initialStatus
119-
$q.notify({
120-
message: 'Impossible de modifier le statut : ' + error.response._data.message,
121-
color: 'negative',
122-
position: 'top-right',
123-
icon: 'mdi-alert-circle-outline',
124-
})
125-
}
126-
127-
}).onCancel(() =>{
128-
props.identity.dataStatus=initialStatus
129103
})
130-
104+
.onOk(async () => {
105+
const requestOptions = { method: 'POST', body: JSON.stringify({ id: props.identity._id, status: props.identity.dataStatus === 1 ? true : false }) }
106+
try {
107+
const data = await $http.post('/management/identities/activation', requestOptions)
108+
$q.notify({
109+
message: 'Le statut a été mis à jour : ',
110+
color: 'positive',
111+
position: 'top-right',
112+
icon: 'mdi-check-circle-outline',
113+
})
114+
} catch (error) {
115+
props.identity.dataStatus = initialStatus
116+
$q.notify({
117+
message: 'Impossible de modifier le statut : ' + error.response._data.message,
118+
color: 'negative',
119+
position: 'top-right',
120+
icon: 'mdi-alert-circle-outline',
121+
})
122+
}
123+
})
124+
.onCancel(() => {
125+
props.identity.dataStatus = initialStatus
126+
})
131127
}
132128
133-
134129
async function deleteIdentity() {
135130
$q.dialog({
136131
title: 'Confirmation',
@@ -165,17 +160,22 @@ async function sync() {
165160
emits('sync')
166161
}
167162
168-
async function sendInit(){
163+
async function sendInit() {
169164
//envoi le mail
170165
171-
const { data: result, pending, error, refresh } = await useHttp(`/management/passwd/init`, {
166+
const {
167+
data: result,
168+
pending,
169+
error,
170+
refresh,
171+
} = await useHttp(`/management/passwd/init`, {
172172
method: 'POST',
173-
body: { uid: props.identity.inetOrgPerson.uid },
174-
});
173+
body: { uid: props.identity.inetOrgPerson.uid },
174+
})
175175
if (error.value) {
176176
handleError({
177177
error: error.value,
178-
message: 'Erreur lors de l\'envoi du mail'
178+
message: "Erreur lors de l'envoi du mail",
179179
})
180180
} else {
181181
$q.notify({
@@ -187,10 +187,6 @@ async function sendInit(){
187187
}
188188
}
189189
190-
function logs() {
191-
router.push(`/jobs?filters[:concernedTo.id]=${(props.identity as any)._id}`)
192-
}
193-
194190
function back() {
195191
router.push('/identities')
196192
}

0 commit comments

Comments
 (0)