Files
Inventory/app/composables/useCustomFields.js
Matthieu 1ca5c347b7 feat: Composables pour la gestion des données
- useApi.js : Service API générique avec gestion d'erreurs
- useSites.js : Gestion des sites industriels
- useMachines.js : Gestion des machines et création depuis types
- useMachineTypes.js : Gestion des types de machines
- useMachineTypesApi.js : API pour les types de machines
- useComposants.js : Gestion des composants hiérarchiques
- usePieces.js : Gestion des pièces de machines
- useCustomFields.js : Gestion des champs personnalisés
- useToast.js : Système de notifications toast
2025-07-30 08:15:35 +02:00

97 lines
2.8 KiB
JavaScript

import { ref } from 'vue'
import { useApi } from './useApi'
export function useCustomFields() {
const { apiCall } = useApi()
const customFieldValues = ref([])
const loading = ref(false)
// Créer une valeur de champ personnalisé
const createCustomFieldValue = async (customFieldValueData) => {
try {
const result = await apiCall('/custom-fields/values', {
method: 'POST',
body: JSON.stringify(customFieldValueData)
})
return result
} catch (error) {
console.error('Erreur lors de la création de la valeur de champ personnalisé:', error)
return { success: false, error }
}
}
// Obtenir les valeurs de champs personnalisés pour une entité
const getCustomFieldValuesByEntity = async (entityType, entityId) => {
try {
loading.value = true
const result = await apiCall(`/custom-fields/values/${entityType}/${entityId}`, {
method: 'GET'
})
if (result.success) {
customFieldValues.value = result.data
}
return result
} catch (error) {
console.error('Erreur lors de la récupération des valeurs de champs personnalisés:', error)
return { success: false, error }
} finally {
loading.value = false
}
}
// Mettre à jour une valeur de champ personnalisé
const updateCustomFieldValue = async (id, updateData) => {
try {
const result = await apiCall(`/custom-fields/values/${id}`, {
method: 'PATCH',
body: JSON.stringify(updateData)
})
return result
} catch (error) {
console.error('Erreur lors de la mise à jour de la valeur de champ personnalisé:', error)
return { success: false, error }
}
}
// Créer ou mettre à jour une valeur de champ personnalisé
const upsertCustomFieldValue = async (customFieldId, entityType, entityId, value) => {
try {
const result = await apiCall('/custom-fields/values/upsert', {
method: 'POST',
body: JSON.stringify({
customFieldId,
entityType,
entityId,
value
})
})
return result
} catch (error) {
console.error('Erreur lors de la création/mise à jour de la valeur de champ personnalisé:', error)
return { success: false, error }
}
}
// Supprimer une valeur de champ personnalisé
const deleteCustomFieldValue = async (id) => {
try {
const result = await apiCall(`/custom-fields/values/${id}`, {
method: 'DELETE'
})
return result
} catch (error) {
console.error('Erreur lors de la suppression de la valeur de champ personnalisé:', error)
return { success: false, error }
}
}
return {
customFieldValues,
loading,
createCustomFieldValue,
getCustomFieldValuesByEntity,
updateCustomFieldValue,
upsertCustomFieldValue,
deleteCustomFieldValue
}
}