Source: api/userApi.js

/**
 * @fileoverview Service API pour la gestion des utilisateurs via JSONPlaceholder.
 * @module userApi
 */

import axios from 'axios';

const API_BASE_URL = process.env.VITE_API_URL || 'https://jsonplaceholder.typicode.com';

/**
 * Récupère la liste des utilisateurs depuis l'API.
 *
 * @returns {Promise<Array>} Liste des utilisateurs
 * @throws {Error} En cas d'erreur réseau ou serveur
 */
async function getUsers() {
    const response = await axios.get(`${API_BASE_URL}/users`);
    return Array.isArray(response.data?.utilisateurs)
        ? response.data.utilisateurs
        : response.data;
}

/**
 * Enregistre un nouvel utilisateur via l'API.
 *
 * @param {Object} userData - Données de l'utilisateur à créer
 * @returns {Promise<Object>} L'utilisateur créé (avec id attribué par le serveur)
 * @throws {Error} En cas d'erreur réseau, métier (400) ou serveur (500)
 */
async function createUser(userData) {
    const response = await axios.post(`${API_BASE_URL}/users`, userData);
    return response.data;
}

export { getUsers, createUser };